Add warning tracker

This commit is contained in:
Zeva Rose 2022-06-10 08:44:34 -06:00
parent 9f94549652
commit 16764fe463
3 changed files with 29 additions and 1 deletions

View file

@ -44,7 +44,7 @@ from nafftrack.client import StatsClient
from pastypy import AsyncPaste as Paste
from jarvis import const
from jarvis.tracking import malicious_tracker
from jarvis.tracking import malicious_tracker, warnings_tracker
from jarvis.utils import build_embed
from jarvis.utils.embeds import warning_embed
@ -490,6 +490,10 @@ class Jarvis(StatsClient):
reason="Sent an invite link",
user=message.author.id,
).commit()
tracker = warnings_tracker.labels(
guild_id=message.guild.id, guild_name=message.guild.name
)
tracker.inc()
embed = warning_embed(message.author, "Sent an invite link")
await message.channel.send(embeds=embed)
@ -522,6 +526,10 @@ class Jarvis(StatsClient):
reason="Mass Mention",
user=message.author.id,
).commit()
tracker = warnings_tracker.labels(
guild_id=message.guild.id, guild_name=message.guild.name
)
tracker.inc()
embed = warning_embed(message.author, "Mass Mention")
await message.channel.send(embeds=embed)
@ -583,6 +591,10 @@ class Jarvis(StatsClient):
reason="Pinged a blocked role/user with a blocked role",
user=message.author.id,
).commit()
tracker = warnings_tracker.labels(
guild_id=message.guild.id, guild_name=message.guild.name
)
tracker.inc()
embed = warning_embed(message.author, "Pinged a blocked role/user with a blocked role")
await message.channel.send(embeds=embed)
@ -603,6 +615,10 @@ class Jarvis(StatsClient):
reason="Phishing URL",
user=message.author.id,
).commit()
tracker = warnings_tracker.labels(
guild_id=message.guild.id, guild_name=message.guild.name
)
tracker.inc()
embed = warning_embed(message.author, "Phishing URL")
await message.channel.send(embeds=embed)
try:
@ -641,6 +657,10 @@ class Jarvis(StatsClient):
reason="Unsafe URL",
user=message.author.id,
).commit()
tracker = warnings_tracker.labels(
guild_id=message.guild.id, guild_name=message.guild.name
)
tracker.inc()
reasons = ", ".join(item["not_safe_reasons"])
embed = warning_embed(message.author, reasons)
await message.channel.send(embeds=embed)

View file

@ -6,3 +6,7 @@ malicious_tracker = Counter(
"Amount of malicious messages blocked",
labelnames=["guild_id", "guild_name"],
)
warnings_tracker = Counter(
"jarvis_warnings", "Amount of warnings given out", labelnames=["guild_id", "guild_name"]
)

View file

@ -9,6 +9,7 @@ from naff.models.discord.components import ActionRow, Button, ButtonStyles
from naff.models.discord.embed import EmbedField
from naff.models.discord.user import Member
from jarvis.tracking import warnings_tracker
from jarvis.utils import build_embed
MODLOG_LOOKUP = {"Ban": Ban, "Kick": Kick, "Mute": Mute, "Warning": Warning}
@ -39,6 +40,9 @@ class ModcaseCog(Extension):
name = self.__name__.replace("Cog", "")
if name in MODLOG_LOOKUP and ctx.invoke_target not in IGNORE_COMMANDS[name]:
if name == "Warning":
tracker = warnings_tracker.labels(guild_id=ctx.guild.id, guild_name=ctx.guild.name)
tracker.inc()
user = kwargs.pop("user", None)
if not user and not ctx.target_id:
self.logger.warning("Admin action %s missing user, exiting", name)