aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar mbaruh <[email protected]>2023-03-27 19:01:27 +0300
committerGravatar mbaruh <[email protected]>2023-03-27 19:01:27 +0300
commit7a1a553b67ff7fc300e9b457f8750efbf28ecf96 (patch)
treef094afe66a7edb18612b3ffeebb43fc2f115ac31
parentFix condition (diff)
Group identical action descriptions in antispam
-rw-r--r--bot/exts/filtering/_filter_lists/antispam.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/bot/exts/filtering/_filter_lists/antispam.py b/bot/exts/filtering/_filter_lists/antispam.py
index e76f95338..9745372af 100644
--- a/bot/exts/filtering/_filter_lists/antispam.py
+++ b/bot/exts/filtering/_filter_lists/antispam.py
@@ -1,5 +1,6 @@
import asyncio
import typing
+from collections import Counter
from collections.abc import Callable, Coroutine
from dataclasses import dataclass, field
from datetime import timedelta
@@ -158,9 +159,12 @@ class DeletionContext:
ctx, *other_contexts = self.contexts
new_ctx = FilterContext(ctx.event, ctx.author, ctx.channel, ctx.content, ctx.message)
- new_ctx.action_descriptions = reduce(
+ all_descriptions_counts = Counter(reduce(
add, (other_ctx.action_descriptions for other_ctx in other_contexts), ctx.action_descriptions
- )
+ ))
+ new_ctx.action_descriptions = [
+ f"{action} X {count}" if count > 1 else action for action, count in all_descriptions_counts.items()
+ ]
# It shouldn't ever come to this, but just in case.
if (descriptions_num := len(new_ctx.action_descriptions)) > 20:
new_ctx.action_descriptions = new_ctx.action_descriptions[:20]