diff --git a/jarvis/client.py b/jarvis/client.py index 3053c8e..23ce978 100644 --- a/jarvis/client.py +++ b/jarvis/client.py @@ -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) diff --git a/jarvis/tracking.py b/jarvis/tracking.py index 4b4e1b0..7814902 100644 --- a/jarvis/tracking.py +++ b/jarvis/tracking.py @@ -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"] +) diff --git a/jarvis/utils/cogs.py b/jarvis/utils/cogs.py index 1dc30c8..792ef7e 100644 --- a/jarvis/utils/cogs.py +++ b/jarvis/utils/cogs.py @@ -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)