diff options
| author | 2020-03-08 21:38:13 +0000 | |
|---|---|---|
| committer | 2020-03-08 21:38:13 +0000 | |
| commit | fc0b5eb46ef1976f64cfac3774a5dd784524c1c2 (patch) | |
| tree | d298a104e32387d15301175f97632ad69634864d /modules/inactive_channels.py | |
| parent | event["line"][1] -> event["line"].args[1] (diff) | |
| signature | ||
switch inactive_channels.py settings to be days, defaulting to None (no prune)
Diffstat (limited to 'modules/inactive_channels.py')
| -rw-r--r-- | modules/inactive_channels.py | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/modules/inactive_channels.py b/modules/inactive_channels.py index 22b6ae1a..59926234 100644 --- a/modules/inactive_channels.py +++ b/modules/inactive_channels.py @@ -3,19 +3,21 @@ from src import ModuleManager, utils PRUNE_TIMEDELTA = datetime.timedelta(weeks=4) -SETTING_NAME = "inactive-channels" -SETTING = utils.BoolSetting(SETTING_NAME, - "Whether or not to leave inactive channels after 4 weeks") +SETTING_NAME = "inactive-prune" +SETTING = utils.IntRangeSetting(0, None, SETTING_NAME, + "Amount of days of inactivity before we leave a channel") -MODE_SETTING_NAME = "inactive-channel-modes" +MODE_SETTING_NAME = "inactive-prune-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) + +@utils.export("channelset", utils.BoolSetting(SETTING_NAME, + "Whether or not to leave this channel when it is inactive")) class Module(ModuleManager.BaseModule): def _get_timestamp(self, channel): return channel.get_setting("last-message", None) @@ -33,31 +35,30 @@ class Module(ModuleManager.BaseModule): @utils.hook("cron") @utils.kwarg("schedule", "0") def hourly(self, event): + print("minutely") parts = [] now = utils.datetime.utcnow() - botwide_setting = self.bot.get_setting(SETTING_NAME, False) + botwide_days = self.bot.get_setting(SETTING_NAME, None) botwide_mode_setting = self.bot.get_setting(MODE_SETTING_NAME, False) for server in self.bot.servers.values(): - serverwide_setting = server.get_setting( - SETTING_NAME, botwide_setting) - if not serverwide_setting: + serverwide_days = server.get_setting(SETTING_NAME, botwide_days) + if serverwide_days == None: 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): + if (not channel.get_setting(SETTING_NAME, True) or + not mode_setting and channel.get_user_modes(our_user)): continue timestamp = self._get_timestamp(channel) if timestamp: dt = utils.datetime.parse.iso8601(timestamp) - if (now-dt) >= PRUNE_TIMEDELTA: + if (now-dt).days >= serverwide_days: parts.append([server, channel]) for server, channel in parts: |
