diff --git a/plugins.py b/plugins.py index b9a4052..f19f0cf 100644 --- a/plugins.py +++ b/plugins.py @@ -978,6 +978,22 @@ def recognize_bots(**args): 'msg': 'Making notes...' } } + elif 'I\'ll be back' in args['data']: + # a buddy! + blob = conf_load() + + if 'other_bots' not in blob: + blob['other_bots'] = [] + if args['reply_user'] not in blob['other_bots']: + blob['other_bots'].append(args['reply_user']) + conf_save(blob) + return { + 'event': { + 'time': time.time() + 3, + 'msg': 'Hey there, buddy!' + } + } + @pluginfunction("set_status", "set bot status", ptypes_COMMAND) diff --git a/urlbot.py b/urlbot.py index 9ff763e..190fd07 100755 --- a/urlbot.py +++ b/urlbot.py @@ -123,10 +123,20 @@ class UrlBot(IdleBot): if str is not type(message): message = '\n'.join(message) + # check other bots, add nospoiler with urls + def _prevent_panic(message, room): + if 'http' in message: + other_bots = conf_load().get("other_bots", ()) + users = self.plugin['xep_0045'].getRoster(room) + if set(users).intersection(set(other_bots)): + message = '(nospoiler) %s' % message + return message + if conf('debug_mode', False): print(message) else: if msg_obj: + message = _prevent_panic(message, msg_obj['from'].bare) self.send_message( mto=msg_obj['from'].bare, mbody=message, @@ -134,6 +144,7 @@ class UrlBot(IdleBot): ) else: # unset msg_obj == broadcast for room in self.rooms: + message = _prevent_panic(message, room) self.send_message( mto=room, mbody=message,