From 01c22aac216bb9e7de140779256e93dfb283e319 Mon Sep 17 00:00:00 2001 From: James Lu Date: Sat, 5 May 2018 12:58:34 -0700 Subject: [PATCH] Revert "service_support: consistently rejoin all channels on kick and kill" This is no longer needed with plugin-specific persistent channels. This reverts commit 3c9dac7e6b2bfd20586a4fea9db40172e537344a. --- coremods/service_support.py | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/coremods/service_support.py b/coremods/service_support.py index f0e116e..92332fc 100644 --- a/coremods/service_support.py +++ b/coremods/service_support.py @@ -107,26 +107,17 @@ def handle_kill(irc, source, command, args): irc.pseudoclient = None userdata = args.get('userdata') sbot = irc.get_service_bot(target) - servicename = None - channels = [] - if userdata: - # Look for the target's service name - servicename = getattr(userdata, 'service', servicename) - channels = getattr(userdata, 'channels', channels) - elif sbot: - # Or its service bot instance + if userdata and hasattr(userdata, 'service'): # Look for the target's service name attribute + servicename = userdata.service + elif sbot: # Or their service bot instance servicename = sbot.name - channels = irc.users[target].channels if servicename: log.info('(%s) Received kill to service %r (nick: %r) from %s (reason: %r).', irc.name, servicename, userdata.nick if userdata else irc.users[target].nick, irc.get_hostmask(source), args.get('text')) spawn_service(irc, source, command, {'name': servicename}) - # Rejoin the killed service bot to all channels it was previously in. - world.services[servicename].join(irc, channels) - utils.add_hook(handle_kill, 'KILL') def handle_join(irc, source, command, args): @@ -173,7 +164,7 @@ def handle_kick(irc, source, command, args): if not _services_dynamic_part(irc, channel): kicked = args['target'] sbot = irc.get_service_bot(kicked) - if sbot: + if sbot and channel in sbot.get_persistent_channels(irc): sbot.join(irc, channel) utils.add_hook(handle_kick, 'KICK')