Change massmention behaviour to align with other events
This commit is contained in:
parent
db640578df
commit
4e906ca051
2 changed files with 16 additions and 29 deletions
|
@ -78,14 +78,10 @@ class MessageEventMixin:
|
||||||
guild_invites = [x.code for x in await message.guild.fetch_invites()]
|
guild_invites = [x.code for x in await message.guild.fetch_invites()]
|
||||||
if message.guild.vanity_url_code:
|
if message.guild.vanity_url_code:
|
||||||
guild_invites.append(message.guild.vanity_url_code)
|
guild_invites.append(message.guild.vanity_url_code)
|
||||||
allowed = guild_invites + [
|
allowed = guild_invites + ["dbrand", "VtgZntXcnZ", "gPfYGbvTCE", "interactions", "NTSHu97tHg"]
|
||||||
"dbrand",
|
is_mod = message.author.has_permission(Permissions.MANAGE_GUILD) or message.author.has_permission(
|
||||||
"VtgZntXcnZ",
|
Permissions.ADMINISTRATOR
|
||||||
"gPfYGbvTCE",
|
)
|
||||||
"interactions",
|
|
||||||
"NTSHu97tHg"
|
|
||||||
]
|
|
||||||
is_mod = message.author.has_permission(Permissions.MANAGE_GUILD) or message.author.has_permission(Permissions.ADMINISTRATOR)
|
|
||||||
if (m := match.group(1)) not in allowed and setting.value and not is_mod:
|
if (m := match.group(1)) not in allowed and setting.value and not is_mod:
|
||||||
self.logger.debug(f"Removing non-allowed invite `{m}` from {message.guild.id}")
|
self.logger.debug(f"Removing non-allowed invite `{m}` from {message.guild.id}")
|
||||||
try:
|
try:
|
||||||
|
@ -127,9 +123,7 @@ class MessageEventMixin:
|
||||||
reason="Sent a message with a filtered word",
|
reason="Sent a message with a filtered word",
|
||||||
user=message.author.id,
|
user=message.author.id,
|
||||||
).commit()
|
).commit()
|
||||||
tracker = warnings_tracker.labels(
|
tracker = warnings_tracker.labels(guild_id=message.guild.id, guild_name=message.guild.name)
|
||||||
guild_id=message.guild.id, guild_name=message.guild.name
|
|
||||||
)
|
|
||||||
tracker.inc()
|
tracker.inc()
|
||||||
embed = warning_embed(message.author, "Sent a message with a filtered word", self.user)
|
embed = warning_embed(message.author, "Sent a message with a filtered word", self.user)
|
||||||
try:
|
try:
|
||||||
|
@ -143,7 +137,6 @@ class MessageEventMixin:
|
||||||
self.logger.debug("Message deleted before action taken")
|
self.logger.debug("Message deleted before action taken")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
async def massmention(self, message: Message) -> None:
|
async def massmention(self, message: Message) -> None:
|
||||||
"""Handle massmention events."""
|
"""Handle massmention events."""
|
||||||
massmention = await Setting.find_one(
|
massmention = await Setting.find_one(
|
||||||
|
@ -153,12 +146,17 @@ class MessageEventMixin:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
is_mod = message.author.has_permission(Permissions.MANAGE_GUILD) or message.author.has_permission(
|
||||||
|
Permissions.ADMINISTRATOR
|
||||||
|
)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
massmention
|
massmention
|
||||||
and massmention.value > 0 # noqa: W503
|
and massmention.value > 0 # noqa: W503
|
||||||
and len(message._mention_ids + message._mention_roles) # noqa: W503
|
and len(message._mention_ids + message._mention_roles) # noqa: W503
|
||||||
- (1 if message.author.id in message._mention_ids else 0) # noqa: W503
|
- (1 if message.author.id in message._mention_ids else 0) # noqa: W503
|
||||||
> massmention.value # noqa: W503
|
> massmention.value # noqa: W503
|
||||||
|
and not is_mod # noqa: W503
|
||||||
):
|
):
|
||||||
self.logger.debug(f"Massmention threshold on {message.guild.id}/{message.channel.id}/{message.id}")
|
self.logger.debug(f"Massmention threshold on {message.guild.id}/{message.channel.id}/{message.id}")
|
||||||
expires_at = datetime.now(tz=timezone.utc) + timedelta(hours=24)
|
expires_at = datetime.now(tz=timezone.utc) + timedelta(hours=24)
|
||||||
|
@ -237,9 +235,7 @@ class MessageEventMixin:
|
||||||
).commit()
|
).commit()
|
||||||
tracker = warnings_tracker.labels(guild_id=message.guild.id, guild_name=message.guild.name)
|
tracker = warnings_tracker.labels(guild_id=message.guild.id, guild_name=message.guild.name)
|
||||||
tracker.inc()
|
tracker.inc()
|
||||||
embed = warning_embed(
|
embed = warning_embed(message.author, "Pinged a blocked role/user with a blocked role", self.user)
|
||||||
message.author, "Pinged a blocked role/user with a blocked role", self.user
|
|
||||||
)
|
|
||||||
try:
|
try:
|
||||||
await message.channel.send(embeds=embed)
|
await message.channel.send(embeds=embed)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
@ -290,12 +286,8 @@ class MessageEventMixin:
|
||||||
fields=[EmbedField(name="URL", value=m)],
|
fields=[EmbedField(name="URL", value=m)],
|
||||||
)
|
)
|
||||||
|
|
||||||
valid_button = Button(
|
valid_button = Button(style=ButtonStyles.GREEN, emoji="✔️", custom_id=f"pl|valid|{pl.id}")
|
||||||
style=ButtonStyles.GREEN, emoji="✔️", custom_id=f"pl|valid|{pl.id}"
|
invalid_button = Button(style=ButtonStyles.RED, emoji="✖️", custom_id=f"pl|invalid|{pl.id}")
|
||||||
)
|
|
||||||
invalid_button = Button(
|
|
||||||
style=ButtonStyles.RED, emoji="✖️", custom_id=f"pl|invalid|{pl.id}"
|
|
||||||
)
|
|
||||||
|
|
||||||
channel = await self.fetch_channel(1026918337554423868)
|
channel = await self.fetch_channel(1026918337554423868)
|
||||||
|
|
||||||
|
@ -365,12 +357,8 @@ class MessageEventMixin:
|
||||||
fields=[EmbedField(name="URL", value=m)],
|
fields=[EmbedField(name="URL", value=m)],
|
||||||
)
|
)
|
||||||
|
|
||||||
valid_button = Button(
|
valid_button = Button(style=ButtonStyles.GREEN, emoji="✔️", custom_id=f"pl|valid|{pl.id}")
|
||||||
style=ButtonStyles.GREEN, emoji="✔️", custom_id=f"pl|valid|{pl.id}"
|
invalid_button = Button(style=ButtonStyles.RED, emoji="✖️", custom_id=f"pl|invalid|{pl.id}")
|
||||||
)
|
|
||||||
invalid_button = Button(
|
|
||||||
style=ButtonStyles.RED, emoji="✖️", custom_id=f"pl|invalid|{pl.id}"
|
|
||||||
)
|
|
||||||
|
|
||||||
channel = await self.fetch_channel(1026918337554423868)
|
channel = await self.fetch_channel(1026918337554423868)
|
||||||
|
|
||||||
|
@ -473,7 +461,6 @@ class MessageEventMixin:
|
||||||
f"Failed to process edit {before.guild.id}/{before.channel.id}/{before.id}: {e}"
|
f"Failed to process edit {before.guild.id}/{before.channel.id}/{before.id}: {e}"
|
||||||
)
|
)
|
||||||
if not isinstance(after.channel, DMChannel) and not after.author.bot:
|
if not isinstance(after.channel, DMChannel) and not after.author.bot:
|
||||||
await self.massmention(after)
|
|
||||||
await self.roleping(after)
|
await self.roleping(after)
|
||||||
await self.checks(after)
|
await self.checks(after)
|
||||||
await self.roleping(after)
|
await self.roleping(after)
|
||||||
|
|
|
@ -30,4 +30,4 @@ class TaskMixin:
|
||||||
if domain in self.phishing_domains:
|
if domain in self.phishing_domains:
|
||||||
sub -= 1
|
sub -= 1
|
||||||
self.phishing_domains.remove(domain)
|
self.phishing_domains.remove(domain)
|
||||||
self.logger.info(f"{add} additions, {sub} removals")
|
self.logger.info(f"[antiphish] {add} additions, {sub} removals")
|
||||||
|
|
Loading…
Add table
Reference in a new issue