aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/exts/recruitment/talentpool/_review.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/bot/exts/recruitment/talentpool/_review.py b/bot/exts/recruitment/talentpool/_review.py
index 64a1c6226..adab1a907 100644
--- a/bot/exts/recruitment/talentpool/_review.py
+++ b/bot/exts/recruitment/talentpool/_review.py
@@ -1,14 +1,15 @@
import asyncio
import logging
+import random
import textwrap
import typing
from collections import Counter
from datetime import datetime, timedelta
-from typing import List, Optional
+from typing import List, Optional, Union
from dateutil.parser import isoparse
from dateutil.relativedelta import relativedelta
-from discord import Member, Message, TextChannel
+from discord import Emoji, Member, Message, TextChannel
from discord.ext.commands import Context
from bot.api import ResponseCodeError
@@ -82,13 +83,15 @@ class Reviewer(Scheduler):
review_body = await self._construct_review_body(member)
+ seen_emoji = self._random_ducky(guild)
vote_request = "*Refer to their nomination and infraction histories for further details*.\n"
- vote_request += "*Please react 👀 if you've seen this post. Then react 👍 for approval, or 👎 for disapproval*."
+ vote_request += f"*Please react {seen_emoji} if you've seen this post."
+ vote_request += " Then react 👍 for approval, or 👎 for disapproval*."
review = "\n\n".join(part for part in (opening, current_nominations, review_body, vote_request))
message = (await self._bulk_send(channel, review))[-1]
- for reaction in ("👀", "👍", "👎"):
+ for reaction in (seen_emoji, "👍", "👎"):
await message.add_reaction(reaction)
async def _construct_review_body(self, member: Member) -> str:
@@ -225,6 +228,14 @@ class Reviewer(Scheduler):
return review
@staticmethod
+ def _random_ducky(guild: Guild) -> Union[Emoji, str]:
+ """Picks a random ducky emoji to be used to mark the vote as seen. If no duckies found returns 👀."""
+ duckies = [emoji for emoji in guild.emojis if emoji.name.startswith("ducky")]
+ if not duckies:
+ return "👀"
+ return random.choice(duckies)
+
+ @staticmethod
async def _bulk_send(channel: TextChannel, text: str) -> List[Message]:
"""
Split a text into several if necessary, and post them to the channel.