diff options
| author | 2020-02-27 12:37:25 +0000 | |
|---|---|---|
| committer | 2020-02-27 12:37:25 +0000 | |
| commit | c3720ce4fa1e4e0a827288b0a8076bc2574d0a6f (patch) | |
| tree | 1e8e3a1ccba65973dcf42605d147ac33f492ac90 /modules/inactive_channels.py | |
| parent | allow individual channels to opt out of inactivity pruning (diff) | |
| signature | ||
by default, do not prune inactive channels we have modes in
Diffstat (limited to 'modules/inactive_channels.py')
| -rw-r--r-- | modules/inactive_channels.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/modules/inactive_channels.py b/modules/inactive_channels.py index 87c87ef5..5959d432 100644 --- a/modules/inactive_channels.py +++ b/modules/inactive_channels.py @@ -2,13 +2,20 @@ import datetime from src import ModuleManager, utils PRUNE_TIMEDELTA = datetime.timedelta(weeks=2) + SETTING_NAME = "inactive-channels" SETTING = utils.BoolSetting(SETTING_NAME, "Whether or not to leave inactive channels after 2 weeks") +MODE_SETTING_NAME = "inactive-channel-modes" +MODE_SETTING = utils.BoolSetting(MODE_SETTING_NAME, + "Whether or not we will leave inactive channels that we have a mode in") + @utils.export("botset", SETTING) @utils.export("serverset", SETTING) @utils.export("channelset", SETTING) +@utils.export("serverset", MODE_SETTING) +@utils.export("channelset", MODE_SETTING) class Module(ModuleManager.BaseModule): def _get_timestamp(self, channel): return channel.get_setting("last-message", None) @@ -29,6 +36,7 @@ class Module(ModuleManager.BaseModule): parts = [] now = utils.datetime.utcnow() botwide_setting = self.bot.get_setting(SETTING_NAME, False) + botwide_mode_setting = self.bot.get_setting(MODE_SETTING_NAME, False) for server in self.bot.servers.values(): serverwide_setting = server.get_setting( @@ -36,9 +44,15 @@ class Module(ModuleManager.BaseModule): if not serverwide_setting: continue + mode_setting = server.get_setting( + MODE_SETTING_NAME, botwide_mode_setting) + + our_user = server.get_user(server.nickname) for channel in server.channels: if not channel.get_setting(SETTING_NAME, serverwide_setting): continue + if not mode_setting and channel.get_user_modes(our_user): + continue timestamp = self._get_timestamp(channel) if timestamp: |
