aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MrAwesomeRocks <[email protected]>2020-08-28 19:06:19 -0500
committerGravatar MrAwesomeRocks <[email protected]>2020-08-29 14:39:41 -0500
commitdf4ef2e520cd672f0bb46b9d5d09a04647ca2ccf (patch)
tree5975ae1e248818b2cd641d5de52ab86337fcc7cb
parentEveryone Ping: Add rules to default config file (diff)
Everyone Ping: Added rule
Added the filter rule to the bot/rules folder.
-rw-r--r--bot/rules/everyone_ping.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py
new file mode 100644
index 000000000..29a734478
--- /dev/null
+++ b/bot/rules/everyone_ping.py
@@ -0,0 +1,31 @@
+from typing import Dict, Iterable, List, Optional, Tuple
+
+from discord import Member, Message
+
+
+async def apply(
+ last_message: Message,
+ recent_messages: List[Message],
+ config: Dict[str, int],
+) -> Optional[Tuple[str, Iterable[Member], Iterable[Message]]]:
+ """Detects if a user has sent an '@everyone' ping."""
+ relevant_messages = tuple(
+ msg for msg in recent_messages if msg.author == last_message.author
+ )
+
+ ev_msgs_ct = 0
+ if config["enabled"]:
+ for msg in relevant_messages:
+ ev_role = msg.guild.default_role
+ msg_roles = msg.role_mentions
+
+ if ev_role in msg_roles:
+ ev_msgs_ct += 1
+
+ if ev_msgs_ct > 0:
+ return (
+ f"pinged the everyone role {ev_msgs_ct} times",
+ (last_message.author),
+ relevant_messages,
+ )
+ return None