diff --git a/idlebot.py b/idlebot.py index 286d6f1..dc5202a 100755 --- a/idlebot.py +++ b/idlebot.py @@ -23,6 +23,8 @@ class IdleBot(ClientXMPP): self.show = None self.logger = logging.getLogger(__name__) + for room in self.rooms: + self.add_event_handler('muc::%s::got_offline' % room, self.muc_offline) def session_start(self, _): self.get_roster() @@ -58,6 +60,17 @@ class IdleBot(ClientXMPP): else: return True + def muc_offline(self, msg_obj): + room = msg_obj.values['muc']['room'] + user = msg_obj.values['muc']['nick'] + if user == config.conf_get('bot_nickname'): + self.logger.warn("Left my room, rejoin") + self.plugin['xep_0045'].joinMUC( + room, + self.nick, + wait=True + ) + def hangup(self): """ disconnect and exit diff --git a/urlbot.py b/urlbot.py index c656406..8ba5545 100755 --- a/urlbot.py +++ b/urlbot.py @@ -43,7 +43,6 @@ class UrlBot(IdleBot): for room in self.rooms: self.add_event_handler('muc::%s::got_online' % room, self.muc_online) - self.add_event_handler('muc::%s::got_offline' % room, self.muc_offline) def muc_message(self, msg_obj): """ @@ -107,17 +106,6 @@ class UrlBot(IdleBot): config.conf_set('persistent_locked', False) - def muc_offline(self, msg_obj): - room = msg_obj.values['muc']['room'] - user = msg_obj.values['muc']['nick'] - if user == config.conf_get('bot_nickname'): - self.logger.warn("Left my room, rejoin") - self.plugin['xep_0045'].joinMUC( - room, - self.nick, - wait=True - ) - # @rate_limited(10) def send_reply(self, message, msg_obj=None): """