]> jfr.im git - erebus.git/commitdiff
add querycb()
authorzonidjan <redacted>
Fri, 18 Oct 2019 20:00:32 +0000 (15:00 -0500)
committerzonidjan <redacted>
Fri, 18 Oct 2019 20:00:32 +0000 (15:00 -0500)
erebus.py

index dc26fef1bd7d4dd8bc52911aeaf6b18ae6dc847c..5893cb8a8a5806d211e45715c00f5c3362ed4a84 100644 (file)
--- a/erebus.py
+++ b/erebus.py
@@ -151,11 +151,11 @@ class Erebus(object): #singleton to pass around
                        self.fdlist = []
 
        def query(self, *args, **kwargs):
-               if 'norecurse' in kwargs:
-                       norecurse = kwargs['norecurse']
-                       del kwargs['norecurse']
+               if 'noretry' in kwargs:
+                       noretry = kwargs['noretry']
+                       del kwargs['noretry']
                else:
-                       norecurse = False
+                       noretry = False
 
                self.log("[SQL]", "?", "query(%s, %s)" % (', '.join([repr(i) for i in args]), ', '.join([str(key)+"="+repr(kwargs[key]) for key in kwargs])))
                try:
@@ -167,12 +167,17 @@ class Erebus(object): #singleton to pass around
                                return res
                except MySQLdb.MySQLError as e:
                        self.log("[SQL]", "!", "MySQL error! %r" % (e))
-                       if not norecurse:
+                       if not noretry:
                                dbsetup()
-                               return self.query(*args, norecurse=True, **kwargs)
+                               return self.query(*args, noretry=True, **kwargs)
                        else:
                                raise e
 
+       def querycb(self, cb, *args, **kwargs):
+               def run_query():
+                       cb(self.query(*args, **kwargs))
+               threading.Thread(target=run_query).start()
+
        def newbot(self, nick, user, bind, authname, authpass, server, port, realname):
                if bind is None: bind = ''
                obj = bot.Bot(self, nick, user, bind, authname, authpass, server, port, realname)