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
message=message.split()
cmd=message[0].lower()
notunderstood=False
- if cmd=="connect":
- if not len(message) in [2,3]:
- serv.privmsg(auteur,"Syntaxe : CONNECT [<username>] <password>")
- 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 [<username>] <password>
- Ouvre une connexion au serveur NoteKfet.
- Si <username> n'est pas précisé, j'utiliserais l'identité sous laquelle je te connais, ou, à défaut, ton pseudo.""",
-"identify": """IDENTIFY <username> <password>
- 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 <password>
- 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 <pseudo> 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 <commande>
+ Affiche de l'aide sur la commande""",None,None],
+"identify": ["""IDENTIFY <username> <password>
+ 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 <password>
+ 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 <pseudo>
+ Affiche le solde de la personne désignée (par son pseudo note).""",None],
+ "join": [None, """JOIN <channel>
+ Me fait rejoindre le channel""",None],
+ "leave": [None,"""LEAVE <channel>
+ Me fait quitter le channel (sauf s'il est dans ma stay_list).""",None],
+ "quiet": [None,"""QUIET <channel>
+ Me rend silencieux sur le channel.""",None],
+ "noquiet": [None,"""NOQUIET <channel>
+ Me rend la parole sur le channel.""",None],
+ "lost": [None,"""LOST <channel>
+ Me fait perdre sur le channel.""",None],
+ "say": [None,None,"""SAY <channel> <message>
+ Me fait parler sur le channel."""],
+ "do": [None,None,"""DO <channel> <action>
+ Me fait faitre une action (/me) sur le channel."""],
+ "stay": [None,None,"""STAY <channel>
+ Ajoute le channel à ma stay_list."""],
+ "nostay": [None,None,"""NOSTAY <channel>
+ 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 <channel> <pseudo> [<raison>]
+ Kicke <pseudo> 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)
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 <channel> <pseudo>")
+ serv.privmsg(auteur,"Syntaxe : KICK <channel> <pseudo> [<raison>]")
else:
notunderstood=True
elif cmd=="lost":
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:
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: