generated from Nemesis/Exemple
biere
This commit is contained in:
parent
84505d2d24
commit
e90a612fe3
1 changed files with 136 additions and 2 deletions
138
asmodee.py
138
asmodee.py
|
@ -32,6 +32,7 @@ bot = None
|
||||||
clock = {}
|
clock = {}
|
||||||
stats = {}
|
stats = {}
|
||||||
quotes = {}
|
quotes = {}
|
||||||
|
bieres = {}
|
||||||
admins = [] # Admins du bot
|
admins = [] # Admins du bot
|
||||||
|
|
||||||
def horloge_read():
|
def horloge_read():
|
||||||
|
@ -60,6 +61,15 @@ def quotes_read():
|
||||||
quotes = loader.load()
|
quotes = loader.load()
|
||||||
except:
|
except:
|
||||||
quotes = {}
|
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):
|
def signal_handler(signal, frame):
|
||||||
with open("horloge", "wb") as fichier:
|
with open("horloge", "wb") as fichier:
|
||||||
|
@ -71,6 +81,9 @@ def signal_handler(signal, frame):
|
||||||
with open("quotes", "wb") as fichier:
|
with open("quotes", "wb") as fichier:
|
||||||
saver = pickle.Pickler(fichier)
|
saver = pickle.Pickler(fichier)
|
||||||
saver.dump(quotes)
|
saver.dump(quotes)
|
||||||
|
with open("bieres", "wb") as fichier:
|
||||||
|
saver = pickle.Pickler(fichier)
|
||||||
|
saver.dump(bieres)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
class Userstats: #Pour garder des stats sur les users
|
class Userstats: #Pour garder des stats sur les users
|
||||||
|
@ -1030,6 +1043,122 @@ def quote(room,event):
|
||||||
reponses(room,phrases)
|
reponses(room,phrases)
|
||||||
else:
|
else:
|
||||||
room.send_text("Je n'ai pas de citations pour ce salon")
|
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):
|
def invitations(room_id, state):
|
||||||
global bot
|
global bot
|
||||||
|
@ -1122,9 +1251,14 @@ def main():
|
||||||
quotes_read()
|
quotes_read()
|
||||||
quote_handler = MCommandHandler("quote", quote)
|
quote_handler = MCommandHandler("quote", quote)
|
||||||
bot.add_handler(quote_handler)
|
bot.add_handler(quote_handler)
|
||||||
|
|
||||||
|
# bieres
|
||||||
|
bieres_read()
|
||||||
|
biere_handler = MCommandHandler("biere", quote)
|
||||||
|
bot.add_handler(biere_handler)
|
||||||
|
|
||||||
test_handler = MCommandHandler("test", verifPMRoom)
|
#test_handler = MCommandHandler("test", verifPMRoom)
|
||||||
bot.add_handler(test_handler)
|
#bot.add_handler(test_handler)
|
||||||
|
|
||||||
# Invitations
|
# Invitations
|
||||||
bot.client.add_invite_listener(invitations)
|
bot.client.add_invite_listener(invitations)
|
||||||
|
|
Loading…
Reference in a new issue