aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar kwzrd <[email protected]>2020-10-13 14:41:09 +0200
committerGravatar kwzrd <[email protected]>2020-10-13 15:14:12 +0200
commit7b40cb697bd10f3640c9f5de3a9666d63606f68b (patch)
tree9fcbbb990ea2715bb849e6651c94dbb7e1fee8f9
parentPR #1231: Dynamic prefix in activity (diff)
Verification: implement kick note post helper
-rw-r--r--bot/exts/moderation/verification.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/bot/exts/moderation/verification.py b/bot/exts/moderation/verification.py
index c3ad8687e..cb6dd14fb 100644
--- a/bot/exts/moderation/verification.py
+++ b/bot/exts/moderation/verification.py
@@ -11,6 +11,7 @@ from discord.ext.commands import Cog, Context, command, group, has_any_role
from discord.utils import snowflake_time
from bot import constants
+from bot.api import ResponseCodeError
from bot.bot import Bot
from bot.decorators import has_no_roles, in_whitelist
from bot.exts.moderation.modlog import ModLog
@@ -355,6 +356,28 @@ class Verification(Cog):
return n_success
+ async def _add_kick_note(self, member: discord.Member) -> None:
+ """
+ Post a note regarding `member` being kicked to site.
+
+ Allows keeping track of kicked members for auditing purposes.
+ """
+ payload = {
+ "active": False,
+ "actor": self.bot.user.id, # Bot actions this autonomously
+ "expires_at": None,
+ "hidden": True,
+ "reason": f"Kicked for not having verified after {constants.Verification.kicked_after} days",
+ "type": "note",
+ "user": member.id,
+ }
+
+ log.trace(f"Posting kick note: {payload!r}")
+ try:
+ await self.bot.api_client.post("bot/infractions", json=payload)
+ except ResponseCodeError as api_exc:
+ log.warning("Failed to post kick note", exc_info=api_exc)
+
async def _kick_members(self, members: t.Collection[discord.Member]) -> int:
"""
Kick `members` from the PyDis guild.