Browse Source

Quote

master
nemesis 6 years ago
parent
commit
ffcd3c8029
  1. 1
      asmodee.ini
  2. 125
      asmodee.py

1
asmodee.ini

@ -2,4 +2,5 @@
username = ""
password = ""
server = ""
admin = ""

125
asmodee.py

@ -31,6 +31,7 @@ cartes=list(cartes_base)
bot = None
clock = {}
stats = {}
quotes = {}
def horloge_read():
global clock
@ -49,6 +50,15 @@ def stats_read():
stats = loader.load()
except:
stats = {}
def quotes_read():
global quotes
try:
with open("quotes", "rb") as fichier:
loader = pickle.Unpickler(fichier)
quotes = loader.load()
except:
quotes = {}
def signal_handler(signal, frame):
with open("horloge", "wb") as fichier:
@ -57,6 +67,9 @@ def signal_handler(signal, frame):
with open("stats", "wb") as fichier:
saver = pickle.Pickler(fichier)
saver.dump(stats)
with open("quotes", "wb") as fichier:
saver = pickle.Pickler(fichier)
saver.dump(quotes)
sys.exit(0)
class Userstats: #Pour garder des stats sur les users
@ -810,54 +823,103 @@ def last(room,event):
global stats
args = event['content']['body'].split()
args.pop(0)
pers = ""
if (len(args) == 0):
room.send_text("!last <name ou id> : Date de dernier message de la personne")
pers = getNick(room,event)
else:
pers=" ".join(args)
try:
usrstats = stats[room.room_id,pers]
room.send_text("J'ai vu " + usrstats.nick + " poster pour la derniere fois le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S"))
except:
room.send_text(pers + " : Personne non reconnue")
#for cle,valeur in stats.items():
# if (cle[0] == room.room_id):
# room.send_text(cle[1] + "\n")
try:
usrstats = stats[room.room_id,pers]
room.send_text("J'ai vu " + usrstats.nick + " poster pour la derniere fois le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S"))
except:
room.send_text(pers + " : Personne non reconnue")
#for cle,valeur in stats.items():
# if (cle[0] == room.room_id):
# room.send_text(cle[1] + "\n")
def actif(room,event):
global stats
args = event['content']['body'].split()
args.pop(0)
pers = ""
if (len(args) == 0):
room.send_text("!actif <name ou id> : Activite de la personne")
pers = getNick(room,event)
else:
pers=" ".join(args)
try:
usrstats = stats[room.room_id,pers]
moy = "{:10.2f}".format(usrstats.char / usrstats.mess)
room.send_text(usrstats.nick + " a poste " + str(usrstats.mess) + " messages avec une moyenne de " + moy + " caracteres par message")
except:
room.send_text(pers + " : Personne non reconnue\n")
try:
usrstats = stats[room.room_id,pers]
moy = "{:10.2f}".format(usrstats.char / usrstats.mess)
room.send_text(usrstats.nick + " a poste " + str(usrstats.mess) + " messages avec une moyenne de " + moy + " caracteres par message")
except:
room.send_text(pers + " : Personne non reconnue\n")
def nb_kap(room,event):
global stats
args = event['content']['body'].split()
args.pop(0)
pers = ""
if (len(args) == 0):
room.send_text("!nb_kap <name ou id> : nombre de kapoue de la personne")
pers = getNick(room,event)
else:
pers=" ".join(args)
try:
usrstats = stats[room.room_id,pers]
if (usrstats.kapoue < 10):
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE!")
elif (usrstats.kapoue < 50):
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Pendez le!")
elif (usrstats.kapoue < 150):
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Brûlez le vif!")
else:
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Faites le manger par des fourmis! Pauvres bêtes...")
except:
room.send_text(pers + " : Personne non reconnue\n")
try:
usrstats = stats[room.room_id,pers]
if (usrstats.kapoue < 10):
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE!")
elif (usrstats.kapoue < 50):
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Pendez le!")
elif (usrstats.kapoue < 150):
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Brûlez le vif!")
else:
room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Faites le manger par des fourmis! Pauvres bêtes...")
except:
room.send_text(pers + " : Personne non reconnue\n")
def quote(room,event):
global quotes
args = event['content']['body'].split()
args.pop(0)
famous = {}
try:
famous = quotes[room.room_id]
except:
famous = {}
if (len(args) > 3 and args[0] == "add"):
#ajoute une quote
args.pop(0)
submit = " ".join(args).split(":")
if (len(submit) > 1):
# Ajout de la citation
nick = submit[0]
submit.pop(0)
citation = ":".join(submit)
tps = datetime.now().microsecond
famous[nick,tps] = citation
quotes[room.room_id] = famous
room.send_text("Ajout de la citation de " + nick + ":" + citation)
else:
# message d'aide
room.send_text("!quote add <nick>:<citation>")
elif (len(args) > 0):
# cite une quote d'une personne precise
nick = " ".join(args)
phrases = []
for cle,valeur in famous.items():
if (cle[0] == nick):
phrases.append(cle[0] + " : " + valeur)
if (len(phrases) > 0 ):
reponses(room,phrases)
else:
room.send_text("Je n'ai pas de citations pour " + nick)
else:
# cite une quote aleatoire
for cle,valeur in famous.items():
phrases.append(cle[0] + " : " + valeur)
if (len(phrases) > 0 ):
reponses(room,phrases)
else:
room.send_text("Je n'ai pas de citations pour ce salon")
def invitations(room_id, state):
global bot
@ -940,6 +1002,11 @@ def main():
nb_kap_handler = MCommandHandler("nb_kap", nb_kap)
bot.add_handler(nb_kap_handler)
# quotes
quotes_read()
quote_handler = MCommandHandler("quote", quote)
bot.add_handler(quote_handler)
# Invitations
bot.client.add_invite_listener(invitations)

Loading…
Cancel
Save