mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 01:09:22 +01:00
ServiceBot: introduce clear_persistent_channels() to clear all persistent channels in a namespace
This commit is contained in:
parent
1ab5d614c0
commit
5ac283f018
31
utils.py
31
utils.py
@ -458,6 +458,37 @@ class ServiceBot():
|
||||
channels |= set(irc.serverdata.get('channels', []))
|
||||
return channels
|
||||
|
||||
def clear_persistent_channels(self, irc, namespace, try_part=True, part_reason=''):
|
||||
"""
|
||||
Clears the persistent channels defined by a namespace.
|
||||
|
||||
irc can be None to clear persistent channels for all networks in this namespace.
|
||||
"""
|
||||
dch_data = self.dynamic_channels.get(namespace, {})
|
||||
|
||||
if irc is not None:
|
||||
if irc.name in dch_data:
|
||||
chanlist = dch_data[irc.name]
|
||||
log.debug('(%s/%s) Clearing persistent channels %r from namespace %r',
|
||||
irc.name, self.name, chanlist, namespace)
|
||||
|
||||
del dch_data[irc.name]
|
||||
|
||||
if try_part:
|
||||
self.part(irc, chanlist, reason=part_reason)
|
||||
|
||||
|
||||
else: # when irc is None
|
||||
del self.dynamic_channels[namespace]
|
||||
|
||||
for netname, chanlist in dch_data.items():
|
||||
log.debug('(%s/%s) Globally clearing persistent channels %r from namespace %r',
|
||||
netname, self.name, chanlist, namespace)
|
||||
if try_part and netname in world.networkobjects:
|
||||
self.part(world.networkobjects[netname], chanlist,
|
||||
reason=part_reason)
|
||||
|
||||
|
||||
def _show_command_help(self, irc, command, private=False, shortform=False):
|
||||
"""
|
||||
Shows help for the given command.
|
||||
|
Loading…
Reference in New Issue
Block a user