Browse Source

biere

master
Nemesis 6 years ago
parent
commit
e90a612fe3
  1. 138
      asmodee.py

138
asmodee.py

@ -32,6 +32,7 @@ bot = None
clock = {}
stats = {}
quotes = {}
bieres = {}
admins = [] # Admins du bot
def horloge_read():
@ -60,6 +61,15 @@ def quotes_read():
quotes = loader.load()
except:
quotes = {}
def bieres_read():
global bieres
try:
with open("bieres", "rb") as fichier:
loader = pickle.Unpickler(fichier)
bieres = loader.load()
except:
bieres = {}
def signal_handler(signal, frame):
with open("horloge", "wb") as fichier:
@ -71,6 +81,9 @@ def signal_handler(signal, frame):
with open("quotes", "wb") as fichier:
saver = pickle.Pickler(fichier)
saver.dump(quotes)
with open("bieres", "wb") as fichier:
saver = pickle.Pickler(fichier)
saver.dump(bieres)
sys.exit(0)
class Userstats: #Pour garder des stats sur les users
@ -1030,6 +1043,122 @@ def quote(room,event):
reponses(room,phrases)
else:
room.send_text("Je n'ai pas de citations pour ce salon")
def biere(room,event):
global bieres
args = event['content']['body'].split()
args.pop(0)
brevages = {}
give = False
elu = ""
envoyeur = getNick(room,event)
try:
breuvages = bieres[room.room_id]
except:
breuvages = {}
if (len(args) > 1 and args[0] == "give"):
give = True
args.pop(0)
submit = " ".join(args).split(":")
elu = submit[0]
try:
args = submit[1].split()
except:
args = ""
if (len(args) > 3 and args[0] == "add"):
#ajoute une biere
args.pop(0)
submit = " ".join(args).split(":")
if (len(submit) > 1):
# Ajout de la citation
nick = submit[0].strip()
submit.pop(0)
citation = ":".join(submit)
tps = datetime.now().microsecond
breuvages[nick,tps] = citation
bieres[room.room_id] = breuvages
room.send_text("Ajout du breuvage " + nick + ":" + citation)
else:
# message d'aide
room.send_text("!biere add <nick>:<citation>")
elif (len(args) > 0 and args[0] == "list"):
# liste les quotes
args.pop(0)
salon = verifPMRoom(room,event)
if (len(args) == 0):
# Liste les breuvages du salon
reponse = "Voici les reponses du salon " + room.room_id + "\n"
if (len(room.aliases) > 0):
reponse = reponse + "(alias : " + room.aliases[0] + "\n"
for cle,valeur in breuvages.items():
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
if (len(reponse) > 500):
salon.send_text(reponse)
reponse = ""
salon.send_text(reponse)
elif (args[0] == "all"):
# tous les breuvages de tous les salons
reponse = "Les breuvages de tous les salons : " + "\n"
salon.send_text(reponse)
for rid,fame in biere.items():
reponse = "Voici les reponses du salon " + rid + "\n"
for cle,valeur in fame.items():
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
if (len(reponse) > 500):
salon.send_text(reponse)
reponse = ""
salon.send_text(reponse)
else:
# les breuvages du pseudo spécifié
nick = " ".join(args)
reponse = "Voici les reponses du breuvage " + nick + "\n"
for cle,valeur in breuvages.items():
if (cle[0] == nick):
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
salon.send_text(reponse)
elif (len(args) > 1 and args[0] == "del"):
salon = verifPMRoom(room,event)
if (event['sender'] in admins):
id = args[1]
reponse = "Voici le breuvage supprimé : \n"
for rid,fame in bieres.items():
for cle,valeur in fame.items():
if (str(cle[1]) == id):
del fame[cle[0],cle[1]]
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
break
salon.send_text(reponse)
else:
salon.send_text("Vous n'êtes pas autorisés à supprimer des breuvages.")
elif (len(args) > 0):
# cite une reponse d'un breuvage precis
nick = " ".join(args)
phrases = []
for cle,valeur in breuvages.items():
if (cle[0] == nick):
if (give):
phrases.append(valeur + " pour " + elu + " de la part de " + envoyeur)
else:
phrases.append(valeur + " pour " + envoyeur)
if (len(phrases) > 0 ):
reponses(room,phrases)
else:
room.send_text("Je n'ai pas de " + nick + " en stock!")
else:
# cite une réponse d'un breuvage aleatoire
phrases = []
for cle,valeur in breuvages.items():
if (give):
phrases.append(valeur + " pour " + elu + " de la part de " + envoyeur)
else:
phrases.append(valeur + " pour " + envoyeur)
if (len(phrases) > 0 ):
reponses(room,phrases)
else:
room.send_text("Je n'ai pas de breuvages pour ce salon")
def invitations(room_id, state):
global bot
@ -1122,9 +1251,14 @@ def main():
quotes_read()
quote_handler = MCommandHandler("quote", quote)
bot.add_handler(quote_handler)
# bieres
bieres_read()
biere_handler = MCommandHandler("biere", quote)
bot.add_handler(biere_handler)
test_handler = MCommandHandler("test", verifPMRoom)
bot.add_handler(test_handler)
#test_handler = MCommandHandler("test", verifPMRoom)
#bot.add_handler(test_handler)
# Invitations
bot.client.add_invite_listener(invitations)

Loading…
Cancel
Save