aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/halloween/spookynamerate.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot/exts/halloween/spookynamerate.py')
-rw-r--r--bot/exts/halloween/spookynamerate.py50
1 files changed, 20 insertions, 30 deletions
diff --git a/bot/exts/halloween/spookynamerate.py b/bot/exts/halloween/spookynamerate.py
index e2950343..3d6d95fa 100644
--- a/bot/exts/halloween/spookynamerate.py
+++ b/bot/exts/halloween/spookynamerate.py
@@ -6,14 +6,15 @@ from datetime import datetime, timedelta
from logging import getLogger
from os import getenv
from pathlib import Path
-from typing import Dict, Union
+from typing import Union
from async_rediscache import RedisCache
from discord import Embed, Reaction, TextChannel, User
from discord.colour import Colour
from discord.ext import tasks
-from discord.ext.commands import Bot, Cog, Context, group
+from discord.ext.commands import Cog, Context, group
+from bot.bot import Bot
from bot.constants import Channels, Client, Colours, Month
from bot.utils.decorators import InMonthCheckFailure
@@ -34,7 +35,7 @@ ADDED_MESSAGES = [
]
PING = "<@{id}>"
-EMOJI_MESSAGE = "\n".join([f"- {emoji} {val}" for emoji, val in EMOJIS_VAL.items()])
+EMOJI_MESSAGE = "\n".join(f"- {emoji} {val}" for emoji, val in EMOJIS_VAL.items())
HELP_MESSAGE_DICT = {
"title": "Spooky Name Rate",
"description": f"Help for the `{Client.prefix}spookynamerate` command",
@@ -64,6 +65,11 @@ HELP_MESSAGE_DICT = {
],
}
+# The names are from https://www.mockaroo.com/
+NAMES = json.loads(Path("bot/resources/halloween/spookynamerate_names.json").read_text("utf8"))
+FIRST_NAMES = NAMES["first_names"]
+LAST_NAMES = NAMES["last_names"]
+
class SpookyNameRate(Cog):
"""
@@ -80,21 +86,13 @@ class SpookyNameRate(Cog):
# The data cache stores small information such as the current name that is going on and whether it is the first time
# the bot is running
data = RedisCache()
- debug = getenv('SPOOKYNAMERATE_DEBUG', False) # Enable if you do not want to limit the commands to October or if
+ debug = getenv("SPOOKYNAMERATE_DEBUG", False) # Enable if you do not want to limit the commands to October or if
# you do not want to wait till 12 UTC. Note: if debug is enabled and you run `.cogs reload spookynamerate`, it
# will automatically start the scoring and announcing the result (without waiting for 12, so do not expect it to.).
# Also, it won't wait for the two hours (when the poll closes).
def __init__(self, bot: Bot) -> None:
self.bot = bot
-
- names_data = self.load_json(
- Path("bot", "resources", "halloween", "spookynamerate_names.json")
- )
- self.first_names = names_data["first_names"]
- self.last_names = names_data["last_names"]
- # the names are from https://www.mockaroo.com/
-
self.name = None
self.bot.loop.create_task(self.load_vars())
@@ -116,7 +114,7 @@ class SpookyNameRate(Cog):
"""Get help on the Spooky Name Rate game."""
await ctx.send(embed=Embed.from_dict(HELP_MESSAGE_DICT))
- @spooky_name_rate.command(name="list", aliases=["all", "entries"])
+ @spooky_name_rate.command(name="list", aliases=("all", "entries"))
async def list_entries(self, ctx: Context) -> None:
"""Send all the entries up till now in a single embed."""
await ctx.send(embed=await self.get_responses_list(final=False))
@@ -133,18 +131,16 @@ class SpookyNameRate(Cog):
"add an entry."
)
- @spooky_name_rate.command(name="add", aliases=["register"])
+ @spooky_name_rate.command(name="add", aliases=("register",))
async def add_name(self, ctx: Context, *, name: str) -> None:
"""Use this command to add/register your spookified name."""
if self.poll:
- logger.info(f"{ctx.message.author} tried to add a name, but the poll had already started.")
+ logger.info(f"{ctx.author} tried to add a name, but the poll had already started.")
await ctx.send("Sorry, the poll has started! You can try and participate in the next round though!")
return
- message = ctx.message
-
for data in (json.loads(user_data) for _, user_data in await self.messages.items()):
- if data["author"] == message.author.id:
+ if data["author"] == ctx.author.id:
await ctx.send(
"But you have already added an entry! Type "
f"`{self.bot.command_prefix}spookynamerate "
@@ -156,14 +152,14 @@ class SpookyNameRate(Cog):
await ctx.send("TOO LATE. Someone has already added this name.")
return
- msg = await (await self.get_channel()).send(f"{message.author.mention} added the name {name!r}!")
+ msg = await (await self.get_channel()).send(f"{ctx.author.mention} added the name {name!r}!")
await self.messages.set(
msg.id,
json.dumps(
{
"name": name,
- "author": message.author.id,
+ "author": ctx.author.id,
"score": 0,
}
),
@@ -172,7 +168,7 @@ class SpookyNameRate(Cog):
for emoji in EMOJIS_VAL:
await msg.add_reaction(emoji)
- logger.info(f"{message.author} added the name {name!r}")
+ logger.info(f"{ctx.author} added the name {name!r}")
@spooky_name_rate.command(name="delete")
async def delete_name(self, ctx: Context) -> None:
@@ -185,7 +181,7 @@ class SpookyNameRate(Cog):
if ctx.author.id == data["author"]:
await self.messages.delete(message_id)
- await ctx.send(f'Name deleted successfully ({data["name"]!r})!')
+ await ctx.send(f"Name deleted successfully ({data['name']!r})!")
return
await ctx.send(
@@ -303,7 +299,7 @@ class SpookyNameRate(Cog):
await self.messages.clear() # reset the messages
# send the next name
- self.name = f"{random.choice(self.first_names)} {random.choice(self.last_names)}"
+ self.name = f"{random.choice(FIRST_NAMES)} {random.choice(LAST_NAMES)}"
await self.data.set("name", self.name)
await channel.send(
@@ -370,12 +366,6 @@ class SpookyNameRate(Cog):
return channel
@staticmethod
- def load_json(file: Path) -> Dict[str, str]:
- """Loads a JSON file and returns its contents."""
- with file.open("r", encoding="utf-8") as f:
- return json.load(f)
-
- @staticmethod
def in_allowed_month() -> bool:
"""Returns whether running in the limited month."""
if SpookyNameRate.debug:
@@ -397,5 +387,5 @@ class SpookyNameRate(Cog):
def setup(bot: Bot) -> None:
- """Loads the SpookyNameRate Cog."""
+ """Load the SpookyNameRate Cog."""
bot.add_cog(SpookyNameRate(bot))