From a906af8008dcba0c0847070dca6218b1ba19bc12 Mon Sep 17 00:00:00 2001 From: Vincent Le Gallic Date: Sat, 2 Jun 2012 22:52:20 +0200 Subject: [PATCH] =?utf8?q?Des=20messages=20HELP=20bien=20mieux=20organis?= =?utf8?q?=C3=A9s=20et=20tous=20pr=C3=A9sents.=20=20+=20Ajout=20des=20comm?= =?utf8?q?andes=20OPS=20et=20OVEROPS?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- basile.py | 125 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 71 insertions(+), 54 deletions(-) diff --git a/basile.py b/basile.py index dac1439..2bc9533 100755 --- a/basile.py +++ b/basile.py @@ -327,7 +327,6 @@ class Basile(ircbot.SingleServerIRCBot): self.ops=self.overops+config_ops self.report_bugs_to=config_report_bugs_to self.chanlist=config_chanlist - self.sockets={} self.identities=pickle.load(open("identities.pickle","r")) self.stay_channels=config_stay_channels self.quiet_channels=config_quiet_channels @@ -415,70 +414,77 @@ class Basile(ircbot.SingleServerIRCBot): message=message.split() cmd=message[0].lower() notunderstood=False - if cmd=="connect": - if not len(message) in [2,3]: - serv.privmsg(auteur,"Syntaxe : CONNECT [] ") - return - username=auteur - if len(message)>2: - username=(message[1]) - password=" ".join(message[2:]) - else: - password=" ".join(message[1:]) - success,sock=self.new_connection_NK(serv,username,password) - if success: - self.sockets[username]=sock - serv.privmsg(auteur,"Connection successful") - log(self.serveur,"priv",auteur," ".join(message)+"[successful]") - else: - serv.privmsg(auteur,"Connection failed") - log(self.serveur,"priv",auteur," ".join(message)+"[failed]") - - elif cmd=="help": - helpdico={"connect": """CONNECT [] - Ouvre une connexion au serveur NoteKfet. - Si n'est pas précisé, j'utiliserais l'identité sous laquelle je te connais, ou, à défaut, ton pseudo.""", -"identify": """IDENTIFY - Vérifie le mot de passe et me permet de savoir à l'avenir quel est ton pseudo note kfet. - Sans paramètre, je réponds sous quel pseudo je te connais.""", -"drop":"""DROP - Vérifie le mot de passe et me fait d'oublier ton pseudo note kfet."""} - helpmsg_default="""Liste des commandes : - HELP Affiche de l'aide sur une commande. - CONNECT Ouvre une connection au serveur Note Kfet. - IDENTIFY Me permet de savoir qui tu es sur la note kfet. - DROP Me fait oublier ton identité. - SOLDE Obtenir ton solde""" - helpmsg_ops=""" - JOIN Faire rejoindre un chan - LEAVE Faire quitter un chan - QUIET Se taire sur un chan - NOQUIET Opposé de QUIET - LOST Perdre sur un chan - SOLDE Donner le solde de quelqu'un""" - helpmsg_overops=""" - SAY Fait envoyer un message sur un chan ou à une personne - DO Fait faire une action sur un chan - STAY Ignorera les prochains LEAVE pour un chan - NOSTAY Opposé de STAY - DIE Mourir""" + if cmd=="help": + helpdico={"help":["""HELP + Affiche de l'aide sur la commande""",None,None], +"identify": ["""IDENTIFY + Vérifie le mot de passe et me permet de savoir à l'avenir quel est votre pseudo note kfet. + Sans paramètre, je vous précise sous quel pseudo je vous connais.""",None,None], +"drop":["""DROP + Vérifie le mot de passe et me fait d'oublier votre pseudo note kfet.""",None,None], +"solde": ["""SOLDE + Affiche votre solde, si je connais votre pseudo note kfet.""", + """SOLDE + Affiche le solde de la personne désignée (par son pseudo note).""",None], + "join": [None, """JOIN + Me fait rejoindre le channel""",None], + "leave": [None,"""LEAVE + Me fait quitter le channel (sauf s'il est dans ma stay_list).""",None], + "quiet": [None,"""QUIET + Me rend silencieux sur le channel.""",None], + "noquiet": [None,"""NOQUIET + Me rend la parole sur le channel.""",None], + "lost": [None,"""LOST + Me fait perdre sur le channel.""",None], + "say": [None,None,"""SAY + Me fait parler sur le channel."""], + "do": [None,None,"""DO + Me fait faitre une action (/me) sur le channel."""], + "stay": [None,None,"""STAY + Ajoute le channel à ma stay_list."""], + "nostay": [None,None,"""NOSTAY + Retire le channel de ma stay_list."""], + "ops": [None,None,"""OPS + Affiche la liste des ops."""], + "overops": [None,None,"""OVEROPS + Affiche la liste des overops."""], + "kick": [None,None,"""KICK [] + Kicke du channel (Il faut bien entendu que j'y sois op)."""], + "die": [None,None,"""DIE + Me déconnecte du serveur IRC."""] + } + helpmsg_default="Liste des commandes disponibles :\nHELP IDENTIFY DROP SOLDE" + helpmsg_ops=" JOIN LEAVE QUIET NOQUIET LOST" + helpmsg_overops=" SAY DO STAY NOSTAY OPS OVEROPS KICK DIE" + op,overop=auteur in self.ops, auteur in self.overops if len(message)==1: helpmsg=helpmsg_default - if auteur in self.ops: + if op: helpmsg+=helpmsg_ops - if auteur in self.overops: + if overop: helpmsg+=helpmsg_overops else: - helpmsg=helpdico.get(message[1].lower(),"Commande inconnue.") + helpmsgs=helpdico.get(message[1].lower(),["Commande inconnue.",None,None]) + helpmsg=helpmsgs[0] + if op and helpmsgs[1]: + if helpmsg: + helpmsg+="\n"+helpmsgs[1] + else: + helpmsg=helpmsgs[1] + if overop and helpmsgs[2]: + if helpmsg: + helpmsg+="\n"+helpmsgs[2] + else: + helpmsg=helpmsgs[2] for ligne in helpmsg.split("\n"): serv.privmsg(auteur,ligne) elif cmd=="identify": if len(message)==1: if self.identities.has_key(auteur): - serv.privmsg(auteur,"Je te connais sous le pseudo note %s."%( + serv.privmsg(auteur,"Je vous connais sous le pseudo note %s."%( self.identities[auteur].encode("utf8"))) else: - serv.privmsg(auteur,"Je ne connais pas ton pseudo note.") + serv.privmsg(auteur,"Je ne connais pas votre pseudo note.") elif len(message)>=3: username,password=message[1],unicode(" ".join(message[2:]),"utf8") success,_=self.new_connection_NK(serv,username,password) @@ -617,7 +623,7 @@ class Basile(ircbot.SingleServerIRCBot): serv.kick(message[1],message[2]," ".join(message[3:])) log(self.serveur,"priv",auteur," ".join(message)) elif len(message)<=2: - serv.privmsg(auteur,"Syntaxe : KICK ") + serv.privmsg(auteur,"Syntaxe : KICK []") else: notunderstood=True elif cmd=="lost": @@ -642,6 +648,7 @@ class Basile(ircbot.SingleServerIRCBot): log(self.serveur,"priv",auteur," ".join(message)+"[failed]") return serv.privmsg(auteur,"%s (%s)"%(float(solde)/100,pseudo.encode("utf8"))) + log(self.serveur,"priv",auteur," ".join(message)+"[successful]") else: serv.privmsg(canal,"Je ne connais pas ton pseudo note.") elif auteur in self.ops: @@ -655,6 +662,16 @@ class Basile(ircbot.SingleServerIRCBot): log(self.serveur,"priv",auteur," ".join(message)+"[failed]") return serv.privmsg(auteur,"%s (%s)"%(float(solde)/100,pseudo.encode("utf8"))) + elif cmd=="ops": + if auteur in self.overops: + serv.privmsg(auteur," ".join(self.ops)) + else: + notunderstood=True + elif cmd=="overops": + if auteur in self.overops: + serv.privmsg(auteur," ".join(self.overops)) + else: + notunderstood=True else: notunderstood=True if notunderstood: -- 2.39.2