]> gitweb.pimeys.fr Git - bots/basile.git/commitdiff
Modularité : module pour les erreurs
authorVincent Le Gallic <legallic@crans.org>
Fri, 31 Jan 2014 00:47:28 +0000 (01:47 +0100)
committerVincent Le Gallic <legallic@crans.org>
Fri, 31 Jan 2014 00:47:28 +0000 (01:47 +0100)
basile.py
errors.py [new file with mode: 0644]

index 38f806b83ba257a75964f882a282128eb9cd76c9..00a1c39fc40eb9c87d95454f172662f6d5998c02 100755 (executable)
--- a/basile.py
+++ b/basile.py
@@ -27,6 +27,8 @@ import config
 import nk
 #: Module de réponse aux questions de base
 import isit
+#: Module définissant les erreurs
+import errors
 
 # la partie qui réfère au fichier lui-même est mieux ici
 # sinon on réfère la config et pas le fichier lui-même
@@ -69,24 +71,13 @@ def ignore_event(serv, ev):
                 return True
 
 
-
-      
-class UnicodeBotError(Exception):
-    """Erreur levée si quelqu'un fait du caca avec son encodage."""
-    pass
-
-class CrashError(Exception):
-    """Pour pouvoir faire crasher Basile, parce que ça a l'air drôle."""
-    def __init__(self, msg=""):
-        Exception.__init__(self, msg)
-
 def bot_unicode(chain):
     """Essaye de décoder ``chain`` en UTF-8.
-       Lève une py:class:`UnicodeBotError` en cas d'échec."""
+       Lève une py:class:`errors.UnicodeBotError` en cas d'échec."""
     try:
         return chain.decode("utf8")
     except UnicodeDecodeError as exc:
-        raise UnicodeBotError
+        raise errors.UnicodeBotError
 
 
 class Basile(ircbot.SingleServerIRCBot):
@@ -200,7 +191,7 @@ class Basile(ircbot.SingleServerIRCBot):
     def crash(self, who="nobody", chan="nowhere"):
         """Fait crasher le bot."""
         where = "en privé" if chan == "priv" else "sur le chan %s" % chan
-        raise CrashError((u"Crash demandé par %s %s" % (who, where)).encode("utf-8"))
+        raise errors.CrashError((u"Crash demandé par %s %s" % (who, where)).encode("utf-8"))
     
     ACTIONS = {
         "reload" : execute_reload,
@@ -243,7 +234,7 @@ class Basile(ircbot.SingleServerIRCBot):
         auteur = irclib.nm_to_n(ev.source())
         try:
             message = bot_unicode(message)
-        except UnicodeBotError:
+        except errors.UnicodeBotError:
             if config.utf8_trigger:
                 serv.privmsg(auteur, random.choice(config.utf8_fail_answers).encode("utf8"))
             return
@@ -490,7 +481,7 @@ class Basile(ircbot.SingleServerIRCBot):
         message = ev.arguments()[0]
         try:
             message = bot_unicode(message)
-        except UnicodeBotError:
+        except errors.UnicodeBotError:
             if config.utf8_trigger and not canal in self.quiet_channels:
                 serv.privmsg(canal, (u"%s: %s"% ( auteur, random.choice(config.utf8_fail_answers))).encode("utf8"))
             return
@@ -705,7 +696,7 @@ class Basile(ircbot.SingleServerIRCBot):
         channel = ev.target()
         try:
             action = bot_unicode(action)
-        except UnicodeBotError:
+        except errors.UnicodeBotError:
             if config.utf8_trigger and not channel in self.quiet_channels:
                 serv.privmsg(channel, (u"%s: %s"%(auteur,random.choice(config.utf8_fail_answers))).encode("utf8"))
             return
diff --git a/errors.py b/errors.py
new file mode 100644 (file)
index 0000000..97fdd6c
--- /dev/null
+++ b/errors.py
@@ -0,0 +1,13 @@
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+""" Erreurs utilisables dans le code du bot """
+
+class UnicodeBotError(Exception):
+    """Erreur levée si quelqu'un fait du caca avec son encodage."""
+    pass
+
+class CrashError(Exception):
+    """Pour pouvoir faire crasher Basile, parce que ça a l'air drôle."""
+    def __init__(self, msg=""):
+        Exception.__init__(self, msg)