self.add_event_handler('message', self.message)
self.add_event_handler('got_online', self._view)
+ # Handles disconnection
+ self.add_event_handler('disconnected', self.disconn)
+
# Discover bot internal command (ie. help)
for name, value in inspect.getmembers(self):
if inspect.ismethod(value) and \
self.log.setLevel(log_level)
self.log.debug('set logger, log level : %s', log_level)
+ def disconn(self, event):
+ """disconnected handler"""
+ msg = ": %s" % event if event else "‽"
+ self.log.info('Disconnected from server%s', msg)
+ self.connect()
+
def message(self, msg):
"""Messages handler
body = msg['body'].strip()
if not body.startswith(MUCBot.prefix):
return
- if msg['from'] not in self.__seen:
- self.log.warning('Will not handle message from unseen jid: %s', msg['from'])
- #return
+ self.log.debug(msg['from'])
+ if msg['from'] not in self.__seen and msg['type'] == 'chat':
+ self.log.warning('Will not handle direct message'
+ 'from unseen jid: %s', msg['from'])
+ return
args = body[1:].split()
cmd = args.pop(0)
if cmd not in self.commands:
status = (pres['type'], pres['status'])
self.__seen.update({nick: status})
- def start(self, event):
+ async def start(self, event):
"""
Process the session_start event.
:param dict event: An empty dictionary. The session_start
event does not provide any additional data.
"""
- self.get_roster()
+ await self.get_roster()
self.send_presence()
self.plugin['xep_0045'].join_muc(self.room,
self.nick,