]> kaliko git repositories - sid.git/commitdiff
log: Add: log user jid when possible
authorkaliko <kaliko@azylum.org>
Tue, 12 May 2020 18:24:47 +0000 (20:24 +0200)
committerkaliko <kaliko@azylum.org>
Tue, 12 May 2020 18:24:47 +0000 (20:24 +0200)
sid/log.py

index ba216e5f58eafaf286ba3012451d06613d440720..746fad2f08c2eedf5694da6dd80be68d1b3b18f8 100644 (file)
@@ -37,18 +37,27 @@ class Log(Plugin):
         bot.add_event_handler("muc::%s::got_offline" %
                               self.bot.room, self.log_offline)
 
-    def log_online(self, pres):
+    def _get_jid(self, pres):
         nick = pres['muc']['nick']
+        jid = self.bot.plugin['xep_0045'].rooms[self.bot.room][nick]['jid']
+        if not jid:
+            self.log.debug('jid not found, is bot account moderating room?')
+            return nick
+        jid = jid.split('/')[0]  # strip ressource
+        return jid
+
+    def log_online(self, pres):
+        nick = self._get_jid(pres)
         self.log.info('got online: %s', nick)
         self.presence.append((datetime.now(), 'online', nick))
 
     def log_offline(self, pres):
-        nick = pres['muc']['nick']
+        nick = self._get_jid(pres)
         self.log.info('got offline: %s', nick)
         self.presence.append((datetime.now(), 'offline', nick))
 
     def log_presence(self, pres):
-        nick = pres['muc']['nick']
+        nick = self._get_jid(pres)
         self.log.debug('%s: %s', pres['muc']['nick'], pres['type'])
         self.presence.append((datetime.now(), pres['type'], nick))
 
@@ -63,7 +72,7 @@ class Log(Plugin):
         delay = int(time()) - Log.throttle_ts
         if delay < 30:
             self.log.debug('throttling file creation')
-            self.reply(message, f'wait {30-delay}')
+            self.reply(message, f'wait {30-delay}s')
             return
         log = self._format_log()
         mode = {'mode': 'w', 'encoding': 'utf-8'}