]> jfr.im git - erebus.git/blobdiff - bot.py
trivia - show streak breaker, fix streak calc
[erebus.git] / bot.py
diff --git a/bot.py b/bot.py
index e0dd155be0fee9175a444dfe9644a49f013c4bea..416934b2caf5b0b1218e897d6a5c49d056a2b5b3 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -93,6 +93,7 @@ class Bot(object):
                        'ERROR': self._goterror,
                }
                one = { #things to look for after source
+                       'NOTICE': self._gotconnected,
                        '001': self._got001,
                        '376': self._gotRegistered,
                        '422': self._gotRegistered,
@@ -128,8 +129,11 @@ class Bot(object):
                self.conn.send("PONG %s" % (pieces[1]))
                self._checknick()
        def _goterror(self, pieces):
+               # TODO: better handling, just reconnect that single bot
                try:
                        self.quit("Error detected: %s" % ' '.join(pieces))
+               except: pass
+               try:
                        curs = self.parent.query("UPDATE bots SET connected = 0")
                        curs.close()
                except: pass
@@ -495,7 +499,10 @@ class BotConnection(object):
                if self.parent.parent.cfg.getboolean('debug', 'io'):
                        self.parent.log('O', line)
                self.bytessent += len(line)
-               self._write(line)
+               try:
+                       self._write(line)
+               except socket.error as e:
+                       self.parent._goterror(repr(e))
 
        def _write(self, line):
                self.socket.sendall(line.encode('utf-8', 'backslashreplace')+b"\r\n")