aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar mbaruh <[email protected]>2022-10-01 10:01:21 +0300
committerGravatar mbaruh <[email protected]>2022-10-01 10:01:21 +0300
commit37bab917fdb17a435ca625bce1cc3ff76bdec802 (patch)
treeab1244d3987ffe16868e06d2573d034c06057623
parentFix patching removed override (diff)
Fix channel_scope checking IDs and names separately
-rw-r--r--bot/exts/filtering/_settings_types/validations/channel_scope.py25
1 files changed, 9 insertions, 16 deletions
diff --git a/bot/exts/filtering/_settings_types/validations/channel_scope.py b/bot/exts/filtering/_settings_types/validations/channel_scope.py
index be1061199..9fb4e2ba7 100644
--- a/bot/exts/filtering/_settings_types/validations/channel_scope.py
+++ b/bot/exts/filtering/_settings_types/validations/channel_scope.py
@@ -37,9 +37,10 @@ class ChannelScope(ValidationEntry):
@classmethod
def maybe_cast_items(cls, channel_or_category: str) -> Union[str, int]:
"""Cast to int each value in each sequence if it is alphanumeric."""
- if channel_or_category.isdigit():
+ try:
return int(channel_or_category)
- return channel_or_category
+ except ValueError:
+ return channel_or_category
def triggers_on(self, ctx: FilterContext) -> bool:
"""
@@ -53,18 +54,10 @@ class ChannelScope(ValidationEntry):
if channel.guild is None: # This is a DM channel, outside the scope of this setting.
return True
- enabled_id = (
- channel.id in self.enabled_channels
- or (
- channel.id not in self.disabled_channels
- and (not channel.category or channel.category.id not in self.disabled_categories)
- )
+ enabled_channel = channel.id in self.enabled_channels or channel.name in self.enabled_channels
+ disabled_channel = channel.id in self.disabled_channels or channel.name in self.disabled_channels
+ disabled_category = channel.category and (
+ channel.category.id in self.disabled_categories or channel.category.name in self.disabled_categories
)
- enabled_name = (
- channel.name in self.enabled_channels
- or (
- channel.name not in self.disabled_channels
- and (not channel.category or channel.category.name not in self.disabled_categories)
- )
- )
- return enabled_id and enabled_name
+
+ return enabled_channel or (not disabled_channel and not disabled_category)