From 40ad0def564109884c607c78f95c67518d7a70a5 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Fri, 28 Aug 2020 11:53:08 -0500 Subject: Everyone Ping: Add rules to default config file --- config-default.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config-default.yml b/config-default.yml index 8c0092e76..3a5918983 100644 --- a/config-default.yml +++ b/config-default.yml @@ -385,6 +385,9 @@ anti_spam: interval: 10 max: 3 + everyone_ping: + enabled: true + reddit: subreddits: -- cgit v1.2.3 From df4ef2e520cd672f0bb46b9d5d09a04647ca2ccf Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Fri, 28 Aug 2020 19:06:19 -0500 Subject: Everyone Ping: Added rule Added the filter rule to the bot/rules folder. --- bot/rules/everyone_ping.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 bot/rules/everyone_ping.py 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 -- cgit v1.2.3 From 99aa7d55a72fdbf4265820e9d6f70d95132faa8f Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Fri, 28 Aug 2020 19:14:29 -0500 Subject: Everyone Ping: Added rule to recognized rules Added mapping to anti-spam cog, then also edited __init__ in the rules folder to expose the apply function. --- bot/cogs/antispam.py | 3 ++- bot/rules/__init__.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/bot/cogs/antispam.py b/bot/cogs/antispam.py index bc31cbd95..d003f962b 100644 --- a/bot/cogs/antispam.py +++ b/bot/cogs/antispam.py @@ -34,7 +34,8 @@ RULE_FUNCTION_MAPPING = { 'links': rules.apply_links, 'mentions': rules.apply_mentions, 'newlines': rules.apply_newlines, - 'role_mentions': rules.apply_role_mentions + 'role_mentions': rules.apply_role_mentions, + 'everyone_ping': rules.apply_everyone_ping, } diff --git a/bot/rules/__init__.py b/bot/rules/__init__.py index a01ceae73..8a69cadee 100644 --- a/bot/rules/__init__.py +++ b/bot/rules/__init__.py @@ -10,3 +10,4 @@ from .links import apply as apply_links from .mentions import apply as apply_mentions from .newlines import apply as apply_newlines from .role_mentions import apply as apply_role_mentions +from .everyone_ping import apply as apply_everyone_ping -- cgit v1.2.3 From f873e685e34f1af62f2bc49bc3e37265c327b3ea Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Fri, 28 Aug 2020 19:30:34 -0500 Subject: Everyone Ping: Added required values to config The `max` and `interval` values were required, so they were added to the config file and the rule was modified to accept these new values. --- bot/rules/everyone_ping.py | 2 +- config-default.yml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 29a734478..342727093 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -14,7 +14,7 @@ async def apply( ) ev_msgs_ct = 0 - if config["enabled"]: + if config["max"]: for msg in relevant_messages: ev_role = msg.guild.default_role msg_roles = msg.role_mentions diff --git a/config-default.yml b/config-default.yml index 3a5918983..18d7f4b0e 100644 --- a/config-default.yml +++ b/config-default.yml @@ -386,7 +386,8 @@ anti_spam: max: 3 everyone_ping: - enabled: true + interval: 1 + max: 1 reddit: -- cgit v1.2.3 From c55b7e3749166d06f66193692a7ded5d1317a154 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Fri, 28 Aug 2020 20:21:01 -0500 Subject: Everyone Ping: Fixed rule, edited config Changed the method of checking for an everyone ping. Also changed the config to act as `min pings` instead of `ping enabled/disabled`. --- bot/rules/everyone_ping.py | 16 ++++++---------- config-default.yml | 4 ++-- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 342727093..bfc400831 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -14,18 +14,14 @@ async def apply( ) ev_msgs_ct = 0 - if config["max"]: - for msg in relevant_messages: - ev_role = msg.guild.default_role - msg_roles = msg.role_mentions + for msg in relevant_messages: + if '@everyone' in msg.content: + ev_msgs_ct += 1 - if ev_role in msg_roles: - ev_msgs_ct += 1 - - if ev_msgs_ct > 0: + if ev_msgs_ct >= config['max']: return ( - f"pinged the everyone role {ev_msgs_ct} times", - (last_message.author), + f"pinged the everyone role {ev_msgs_ct} times in {config['interval']}s", + (last_message.author,), relevant_messages, ) return None diff --git a/config-default.yml b/config-default.yml index 18d7f4b0e..8546b5310 100644 --- a/config-default.yml +++ b/config-default.yml @@ -386,8 +386,8 @@ anti_spam: max: 3 everyone_ping: - interval: 1 - max: 1 + interval: 10 + max: 0 reddit: -- cgit v1.2.3 From 24002b6b585962bf9218ad643727b30d4ed018dd Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sat, 29 Aug 2020 16:06:19 -0500 Subject: Everyone ping: Send embed on ping, fixed check When a user pings the everyone role, they now get an embed explaining why what they did was wrong. The ping detection was also fixed to not thing that every message was a ping (changed form `>=` to `>`). --- bot/rules/everyone_ping.py | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index bfc400831..65ee1062c 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -1,6 +1,14 @@ +import logging +import textwrap from typing import Dict, Iterable, List, Optional, Tuple -from discord import Member, Message +from discord import Embed, Member, Message + +from bot.cogs.moderation.utils import send_private_embed +from bot.constants import Colours + +# For embed sender +log = logging.getLogger(__name__) async def apply( @@ -15,10 +23,28 @@ async def apply( ev_msgs_ct = 0 for msg in relevant_messages: - if '@everyone' in msg.content: + if "@everyone" in msg.content: ev_msgs_ct += 1 - if ev_msgs_ct >= config['max']: + if ev_msgs_ct > config["max"]: + # Send the user an embed giving them more info: + member_count = "{:,}".format(last_message.guild.member_count).split( + "," + )[0] + embed_text = textwrap.dedent( + f""" + Hello {last_message.author.display_name}, please don't try to ping {member_count}k people. + **It will not have good results.** + If you want to know what it would be like, imagine pinging Greenland. Please don't ping Greenland. + """ + ) + print(embed_text) + embed = Embed( + title="Everyone Ping Mute Info", + colour=Colours.soft_red, + description=embed_text, + ) + await send_private_embed(last_message.author, embed) return ( f"pinged the everyone role {ev_msgs_ct} times in {config['interval']}s", (last_message.author,), -- cgit v1.2.3 From 218e50ce41dea40ec04614db1888cd44db7843b5 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sat, 29 Aug 2020 17:09:24 -0500 Subject: Everyone Ping: Removed debug `print`, spelling Removed a debug `print` statement, fixed a spelling mistake. Also added a comment for the DM string. --- bot/rules/everyone_ping.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 65ee1062c..b99e75059 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -31,14 +31,14 @@ async def apply( member_count = "{:,}".format(last_message.guild.member_count).split( "," )[0] + # Change the `K` to an `M` once the server reaches over 1 million people. embed_text = textwrap.dedent( f""" - Hello {last_message.author.display_name}, please don't try to ping {member_count}k people. + Hello {last_message.author.display_name}, please don't try to ping {member_count}K people. **It will not have good results.** If you want to know what it would be like, imagine pinging Greenland. Please don't ping Greenland. """ ) - print(embed_text) embed = Embed( title="Everyone Ping Mute Info", colour=Colours.soft_red, -- cgit v1.2.3 From e42db79c2fd7be4b0c82a5ba4e3f1ca4349745a2 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sat, 29 Aug 2020 18:27:07 -0500 Subject: Everyone Ping: Changed embed text and location The you can view the embed text in the `everyone_ping.py` file. The embed also now sends in the server instead of a DM. --- bot/rules/everyone_ping.py | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index b99e75059..47931caae 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -4,7 +4,6 @@ from typing import Dict, Iterable, List, Optional, Tuple from discord import Embed, Member, Message -from bot.cogs.moderation.utils import send_private_embed from bot.constants import Colours # For embed sender @@ -17,9 +16,7 @@ async def apply( 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 - ) + relevant_messages = tuple(msg for msg in recent_messages if msg.author == last_message.author) ev_msgs_ct = 0 for msg in relevant_messages: @@ -28,23 +25,16 @@ async def apply( if ev_msgs_ct > config["max"]: # Send the user an embed giving them more info: - member_count = "{:,}".format(last_message.guild.member_count).split( - "," - )[0] + member_count = "{:,}".format(last_message.guild.member_count).split(",")[0] # Change the `K` to an `M` once the server reaches over 1 million people. embed_text = textwrap.dedent( f""" - Hello {last_message.author.display_name}, please don't try to ping {member_count}K people. + Please don't try to ping {member_count}K people. **It will not have good results.** - If you want to know what it would be like, imagine pinging Greenland. Please don't ping Greenland. """ ) - embed = Embed( - title="Everyone Ping Mute Info", - colour=Colours.soft_red, - description=embed_text, - ) - await send_private_embed(last_message.author, embed) + embed = Embed(description=embed_text, colour=Colours.soft_red) + await last_message.channel.send(f"Hey {last_message.author.mention}!", embed=embed) return ( f"pinged the everyone role {ev_msgs_ct} times in {config['interval']}s", (last_message.author,), -- cgit v1.2.3 From dbb05d95420cdd6ff08231ce7b9c67cc46bf3675 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sat, 29 Aug 2020 18:49:02 -0500 Subject: Everyone Ping: Fixed linting error Switched from string.format to f-string for server member count. --- bot/rules/everyone_ping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 47931caae..8c1b43628 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -25,7 +25,7 @@ async def apply( if ev_msgs_ct > config["max"]: # Send the user an embed giving them more info: - member_count = "{:,}".format(last_message.guild.member_count).split(",")[0] + member_count = f'{last_message.guild.member_count}'.split(",")[0] # Change the `K` to an `M` once the server reaches over 1 million people. embed_text = textwrap.dedent( f""" -- cgit v1.2.3 From 20f0dfd57f3ed711ef46169b9dcf0e8ee57bcfd1 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sun, 30 Aug 2020 07:32:44 -0500 Subject: Everyone ping: Changed message, cleaned file Changed the message to say the raw member count, not just thousands. Also cleaned up some unused variables and imports in the file. --- bot/rules/everyone_ping.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 8c1b43628..037d7254e 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -1,4 +1,3 @@ -import logging import textwrap from typing import Dict, Iterable, List, Optional, Tuple @@ -6,9 +5,6 @@ from discord import Embed, Member, Message from bot.constants import Colours -# For embed sender -log = logging.getLogger(__name__) - async def apply( last_message: Message, @@ -25,11 +21,9 @@ async def apply( if ev_msgs_ct > config["max"]: # Send the user an embed giving them more info: - member_count = f'{last_message.guild.member_count}'.split(",")[0] - # Change the `K` to an `M` once the server reaches over 1 million people. embed_text = textwrap.dedent( f""" - Please don't try to ping {member_count}K people. + Please don't try to ping {last_message.guild.member_count} people. **It will not have good results.** """ ) -- cgit v1.2.3 From e7862878bd4233cc9340c00bfb77079c318a0b22 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sun, 30 Aug 2020 07:37:57 -0500 Subject: Everyone ping: added formatting to member count Seperated the member count by commas every three digits. --- bot/rules/everyone_ping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 037d7254e..44e9aade4 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -23,7 +23,7 @@ async def apply( # Send the user an embed giving them more info: embed_text = textwrap.dedent( f""" - Please don't try to ping {last_message.guild.member_count} people. + Please don't try to ping {last_message.guild.member_count:,} people. **It will not have good results.** """ ) -- cgit v1.2.3 From 702ff7e80d859dbc8189e55d1dcf9e3bd5959c7a Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sun, 30 Aug 2020 08:18:52 -0500 Subject: Everyone Ping: PR Review Changed cryptic variable name. Changed ping response to use `bot.constants.NEGATIVE_REPLIES`. Changed ping repsonse to only ping user once. --- bot/rules/everyone_ping.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 44e9aade4..f3790ba2c 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -1,9 +1,10 @@ +import random import textwrap from typing import Dict, Iterable, List, Optional, Tuple from discord import Embed, Member, Message -from bot.constants import Colours +from bot.constants import Colours, NEGATIVE_REPLIES async def apply( @@ -14,23 +15,27 @@ async def apply( """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 + everyone_messages_count = 0 for msg in relevant_messages: if "@everyone" in msg.content: - ev_msgs_ct += 1 + everyone_messages_count += 1 - if ev_msgs_ct > config["max"]: + if everyone_messages_count > config["max"]: # Send the user an embed giving them more info: embed_text = textwrap.dedent( f""" + **{random.choice(NEGATIVE_REPLIES)}** Please don't try to ping {last_message.guild.member_count:,} people. - **It will not have good results.** - """ + """ ) + + # Make embed: embed = Embed(description=embed_text, colour=Colours.soft_red) - await last_message.channel.send(f"Hey {last_message.author.mention}!", embed=embed) + + # Send embed: + await last_message.channel.send(embed=embed) return ( - f"pinged the everyone role {ev_msgs_ct} times in {config['interval']}s", + f"pinged the everyone role {everyone_messages_count} times in {config['interval']}s", (last_message.author,), relevant_messages, ) -- cgit v1.2.3 From 94b89a867942d98138f43ec8d2e6bf8f6607c240 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sun, 30 Aug 2020 09:52:17 -0500 Subject: Everyone Ping: NEGATIVE_REPLIES in title The NEGATIVE_REPLIES header is now the title of the embed. --- bot/rules/everyone_ping.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index f3790ba2c..08415b1e0 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -1,5 +1,4 @@ import random -import textwrap from typing import Dict, Iterable, List, Optional, Tuple from discord import Embed, Member, Message @@ -22,15 +21,10 @@ async def apply( if everyone_messages_count > config["max"]: # Send the user an embed giving them more info: - embed_text = textwrap.dedent( - f""" - **{random.choice(NEGATIVE_REPLIES)}** - Please don't try to ping {last_message.guild.member_count:,} people. - """ - ) + embed_text = f"Please don't try to ping {last_message.guild.member_count:,} people." # Make embed: - embed = Embed(description=embed_text, colour=Colours.soft_red) + embed = Embed(title=random.choice(NEGATIVE_REPLIES), description=embed_text, colour=Colours.soft_red) # Send embed: await last_message.channel.send(embed=embed) -- cgit v1.2.3 From 94dcfa584599301f0cfb9e47d4ef9f7f40bdc23c Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Sun, 30 Aug 2020 21:55:39 -0500 Subject: Everyone Ping: PR Review 2 Removed redundant comments. Switched to regex to avoid punishing users for putting `@everyone` in codeblocks. Changed log message since this isn't a anti-spam rule based off of frequency. Added check for `<@&{guild_id}>` ping, also checks for codeblocks. --- bot/rules/everyone_ping.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 08415b1e0..3a8174e44 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -1,9 +1,15 @@ import random +import re from typing import Dict, Iterable, List, Optional, Tuple from discord import Embed, Member, Message -from bot.constants import Colours, NEGATIVE_REPLIES +from bot.constants import Colours, Guild, NEGATIVE_REPLIES + +# Generate regex for checking for pings: +guild_id = Guild.id +EVERYONE_RE_INLINE_CODE = re.compile(rf"(?!`)@everyone(?!`)|(?!`)<@&{guild_id}>(?!`)") +EVERYONE_RE_MULTILINE_CODE = re.compile(rf"(?!```\n.*)@everyone(?!\n.*```)|(?!```\n.*)<@&{guild_id}>(?!\n.*```)") async def apply( @@ -16,20 +22,19 @@ async def apply( everyone_messages_count = 0 for msg in relevant_messages: - if "@everyone" in msg.content: + num_everyone_pings_inline = len(re.findall(EVERYONE_RE_INLINE_CODE, msg.content)) + num_everyone_pings_multiline = len(re.findall(EVERYONE_RE_MULTILINE_CODE, msg.content)) + if num_everyone_pings_inline and num_everyone_pings_multiline: everyone_messages_count += 1 if everyone_messages_count > config["max"]: - # Send the user an embed giving them more info: + # Send the channel an embed giving the user more info: embed_text = f"Please don't try to ping {last_message.guild.member_count:,} people." - - # Make embed: embed = Embed(title=random.choice(NEGATIVE_REPLIES), description=embed_text, colour=Colours.soft_red) - - # Send embed: await last_message.channel.send(embed=embed) + return ( - f"pinged the everyone role {everyone_messages_count} times in {config['interval']}s", + "pinged the everyone role", (last_message.author,), relevant_messages, ) -- cgit v1.2.3 From 9c52a99a03777cdfd728f354cdb305398791eac1 Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Mon, 31 Aug 2020 08:17:57 -0500 Subject: Everyone Ping: Regex Fix Changed the regex to not punish users who have text other than `@everyone` in their codeblocks. Multiline codeblocks can now have `@everyone` in them. --- bot/rules/everyone_ping.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 3a8174e44..560a9ec14 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -8,8 +8,8 @@ from bot.constants import Colours, Guild, NEGATIVE_REPLIES # Generate regex for checking for pings: guild_id = Guild.id -EVERYONE_RE_INLINE_CODE = re.compile(rf"(?!`)@everyone(?!`)|(?!`)<@&{guild_id}>(?!`)") -EVERYONE_RE_MULTILINE_CODE = re.compile(rf"(?!```\n.*)@everyone(?!\n.*```)|(?!```\n.*)<@&{guild_id}>(?!\n.*```)") +EVERYONE_RE_INLINE_CODE = re.compile(rf"^(?!`)@everyone(?!`)$|^(?!`)<@&{guild_id}>(?!`)$") +EVERYONE_RE_MULTILINE_CODE = re.compile(rf"^(?!```)@everyone(?!```)$|^(?!```)<@&{guild_id}>(?!```)$") async def apply( -- cgit v1.2.3 From 4906406cedaa476b8eb1665bc0e20616c91d7f6b Mon Sep 17 00:00:00 2001 From: MrAwesomeRocks <42477863+MrAwesomeRocks@users.noreply.github.com> Date: Mon, 31 Aug 2020 19:19:57 -0500 Subject: Everyone Ping: Fixed regex to catch *all* pings --- bot/rules/everyone_ping.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index 560a9ec14..89d9fe570 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -8,8 +8,8 @@ from bot.constants import Colours, Guild, NEGATIVE_REPLIES # Generate regex for checking for pings: guild_id = Guild.id -EVERYONE_RE_INLINE_CODE = re.compile(rf"^(?!`)@everyone(?!`)$|^(?!`)<@&{guild_id}>(?!`)$") -EVERYONE_RE_MULTILINE_CODE = re.compile(rf"^(?!```)@everyone(?!```)$|^(?!```)<@&{guild_id}>(?!```)$") +EVERYONE_RE_INLINE_CODE = re.compile(rf"^(?!`).*@everyone.*(?!`)$|^(?!`).*<@&{guild_id}>.*(?!`)$") +EVERYONE_RE_MULTILINE_CODE = re.compile(rf"^(?!```).*@everyone.*(?!```)$|^(?!```).*<@&{guild_id}>.*(?!```)$") async def apply( -- cgit v1.2.3