]> gitweb.pimeys.fr Git - bots/basile.git/blobdiff - basile.py
Basile est le bienvenu sur #note-dev
[bots/basile.git] / basile.py
index 1481d84ba8cda221308cc8ff50e0a568a532b1ae..4c071ff5a5d520e2cd429566f0633b74b6a791cb 100755 (executable)
--- a/basile.py
+++ b/basile.py
@@ -23,8 +23,8 @@ if "--quiet" in sys.argv:
 
 config_irc_password="NK2015BasileB0t"
 config_irc_pseudo="Basile"
-config_chanlist=["#bot","#flood"]
-config_stay_channels=["#bot","#flood"]
+config_chanlist=["#bot","#flood","#note-dev"]
+config_stay_channels=["#bot","#flood","#note-dev"]
 config_quiet_channels=[]
 config_note_pseudo="Basile"
 config_note_password="NK2015BasileB0tr4nd0omp4assword]6_+{#]78{"
@@ -375,6 +375,8 @@ class Basile(ircbot.SingleServerIRCBot):
         log(self.serveur,"Connected")
         if self.debug:
             self.chanlist=["#bot"]
+        else:
+            serv.privmsg("ChanServ INVITE #note-dev")
         for c in self.chanlist:
             log(self.serveur,"JOIN %s"%(c))
             serv.join(c)
@@ -436,6 +438,8 @@ class Basile(ircbot.SingleServerIRCBot):
  Me rend la parole sur le channel.""",None],
  "lost": [None,"""LOST <channel>
  Me fait perdre sur le channel.""",None],
+ "reconnect": [None,"""RECONNECT
+ Établit à nouveau la connexion avec le serveur NK2015""",None],
  "say": [None,None,"""SAY <channel> <message>
  Me fait parler sur le channel."""],
  "do": [None,None,"""DO <channel> <action>
@@ -454,7 +458,7 @@ class Basile(ircbot.SingleServerIRCBot):
  Me déconnecte du serveur IRC."""]
  }
             helpmsg_default="Liste des commandes disponibles :\nHELP IDENTIFY DROP SOLDE"
-            helpmsg_ops=" JOIN LEAVE QUIET NOQUIET LOST"
+            helpmsg_ops=" JOIN LEAVE QUIET NOQUIET LOST RECONNECT"
             helpmsg_overops=" SAY DO STAY NOSTAY OPS OVEROPS KICK DIE"
             op,overop=auteur in self.ops, auteur in self.overops
             if len(message)==1:
@@ -492,7 +496,7 @@ class Basile(ircbot.SingleServerIRCBot):
                     log(self.serveur,"priv",auteur," ".join(message)+"[successful]")
                     serv.privmsg(auteur,"Identité enregistrée.")
                     self.identities[auteur]=username
-                    pickle.dump(self.identities,open("identities.pickle","w"))
+                    pickle.dump(Xself.identities,open("identities.pickle","w"))
                 else:
                     log(self.serveur,"priv",auteur," ".join(message)+"[failed]")
                     serv.privmsg(auteur,"Mot de passe invalide. (ou serveur down)")
@@ -576,6 +580,24 @@ class Basile(ircbot.SingleServerIRCBot):
                 self.mourir()
             else:
                 notunderstood=True
+        elif cmd=="reconnect":
+            if auteur in self.ops:
+                try:
+                    self.nk=self.new_connection_NK(serv,config_note_pseudo,
+                                            config_note_password,"special")[1]
+                except Exception as exc:
+                    self.nk=None
+                    log(self.serveur,"""Erreur dans on_pubmsg/"cmd in ["reconnect"]\n"""+str(exc))
+                if self.nk!=None:
+                    serv.privmsg(auteur,"%s: done"%(auteur))
+                    log(self.serveur,"priv",auteur," ".join(message)+"[successful]")
+                else:
+                    serv.privmsg(auteur,"%s: failed"%(auteur))
+                    log(self.serveur,"priv",auteur," ".join(message)+"[failed]")
+                    for report in self.report_bugs_to:
+                        serv.privmsg(report,"Connection to NK2015 failed, invalid password ? Server dead ?")
+            else:
+                notunderstood=True
         elif cmd=="quiet":
             if auteur in self.ops:
                 if len(message)>1:
@@ -729,9 +751,9 @@ class Basile(ircbot.SingleServerIRCBot):
                         serv.privmsg(canal,"%s: failed"%(auteur))
                         log(self.serveur,canal,auteur,message+"[failed]")
                         for report in self.report_bugs_to:
-                            serv.privmsg(report,"Connection to NK2015 failed, invalid password ?")
+                            serv.privmsg(report,"Connection to NK2015 failed, invalid password ? Server dead ?")
                 else:
-                    serv.privmsg(canal,"%s: crève !"%(auteur))
+                    serv.privmsg(canal,"%s: Encore eût-il fallu que je sois programmé pour vous obéir !"%(auteur))
                     log(self.serveur,canal,auteur,message+"[failed]")
 
             elif cmd in ["deviens","pseudo"]: