aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar mbaruh <[email protected]>2022-11-27 20:14:03 +0200
committerGravatar mbaruh <[email protected]>2022-11-27 20:14:03 +0200
commit8f2f188cee48096aebf5b7aeff04d632643dc7be (patch)
tree16081bf177e3db8df4f42da0085201bcd453b187
parentfix: Validate filter list before initiating filter add (diff)
fix: Handle uncached messages in filter editing
This also increases the cache size to increase the chances of ignoring filters. Since it's newest first and the antispam uses take_while, it doesn't slow down the antispam.
-rw-r--r--bot/exts/filtering/_filter_lists/filter_list.py9
-rw-r--r--bot/exts/filtering/filtering.py2
2 files changed, 6 insertions, 5 deletions
diff --git a/bot/exts/filtering/_filter_lists/filter_list.py b/bot/exts/filtering/_filter_lists/filter_list.py
index c829f4a8f..64c96d350 100644
--- a/bot/exts/filtering/_filter_lists/filter_list.py
+++ b/bot/exts/filtering/_filter_lists/filter_list.py
@@ -105,10 +105,11 @@ class AtomicList:
if ctx.event == Event.MESSAGE_EDIT and ctx.message and self.list_type == ListType.DENY:
previously_triggered = ctx.message_cache.get_message_metadata(ctx.message.id)
- ignore_filters = previously_triggered[self]
- # This updates the cache. Some filters are ignored, but they're necessary if there's another edit.
- previously_triggered[self] = relevant_filters
- if previously_triggered and self in previously_triggered:
+ # The message might not be cached.
+ if previously_triggered:
+ ignore_filters = previously_triggered[self]
+ # This updates the cache. Some filters are ignored, but they're necessary if there's another edit.
+ previously_triggered[self] = relevant_filters
relevant_filters = [filter_ for filter_ in relevant_filters if filter_ not in ignore_filters]
return relevant_filters
diff --git a/bot/exts/filtering/filtering.py b/bot/exts/filtering/filtering.py
index 4f4cda611..3fb627a82 100644
--- a/bot/exts/filtering/filtering.py
+++ b/bot/exts/filtering/filtering.py
@@ -50,7 +50,7 @@ from bot.utils.message_cache import MessageCache
log = get_logger(__name__)
WEBHOOK_ICON_URL = r"https://github.com/python-discord/branding/raw/main/icons/filter/filter_pfp.png"
-CACHE_SIZE = 100
+CACHE_SIZE = 1000
HOURS_BETWEEN_NICKNAME_ALERTS = 1
OFFENSIVE_MSG_DELETE_TIME = datetime.timedelta(days=7)
WEEKLY_REPORT_ISO_DAY = 3 # 1=Monday, 7=Sunday