diff options
author | 2021-09-05 00:12:47 -0400 | |
---|---|---|
committer | 2021-09-05 00:12:47 -0400 | |
commit | 66c888ad68ad88ba1d39c2ac4824469560b8c29a (patch) | |
tree | 706917000c39c3af1fc92c47fd59fe31a63f601a /bot/exts/evergreen/conversationstarters.py | |
parent | Move internal eval and rename utils to core (diff) |
Move practical functions into utilities folder
Separates out the useful/practical seasonal bot features from the
evergreen folder into a "utilities" folder.
Adjusts the paths to resources to reflect the folder move.
Diffstat (limited to 'bot/exts/evergreen/conversationstarters.py')
-rw-r--r-- | bot/exts/evergreen/conversationstarters.py | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/bot/exts/evergreen/conversationstarters.py b/bot/exts/evergreen/conversationstarters.py deleted file mode 100644 index fdc4467a..00000000 --- a/bot/exts/evergreen/conversationstarters.py +++ /dev/null @@ -1,69 +0,0 @@ -from pathlib import Path - -import yaml -from discord import Color, Embed -from discord.ext import commands - -from bot.bot import Bot -from bot.constants import WHITELISTED_CHANNELS -from bot.utils.decorators import whitelist_override -from bot.utils.randomization import RandomCycle - -SUGGESTION_FORM = "https://forms.gle/zw6kkJqv8U43Nfjg9" - -with Path("bot/resources/evergreen/starter.yaml").open("r", encoding="utf8") as f: - STARTERS = yaml.load(f, Loader=yaml.FullLoader) - -with Path("bot/resources/evergreen/py_topics.yaml").open("r", encoding="utf8") as f: - # First ID is #python-general and the rest are top to bottom categories of Topical Chat/Help. - PY_TOPICS = yaml.load(f, Loader=yaml.FullLoader) - - # Removing `None` from lists of topics, if not a list, it is changed to an empty one. - PY_TOPICS = {k: [i for i in v if i] if isinstance(v, list) else [] for k, v in PY_TOPICS.items()} - - # All the allowed channels that the ".topic" command is allowed to be executed in. - ALL_ALLOWED_CHANNELS = list(PY_TOPICS.keys()) + list(WHITELISTED_CHANNELS) - -# Putting all topics into one dictionary and shuffling lists to reduce same-topic repetitions. -ALL_TOPICS = {"default": STARTERS, **PY_TOPICS} -TOPICS = { - channel: RandomCycle(topics or ["No topics found for this channel."]) - for channel, topics in ALL_TOPICS.items() -} - - -class ConvoStarters(commands.Cog): - """Evergreen conversation topics.""" - - @commands.command() - @whitelist_override(channels=ALL_ALLOWED_CHANNELS) - async def topic(self, ctx: commands.Context) -> None: - """ - Responds with a random topic to start a conversation. - - If in a Python channel, a python-related topic will be given. - - Otherwise, a random conversation topic will be received by the user. - """ - # No matter what, the form will be shown. - embed = Embed(description=f"Suggest more topics [here]({SUGGESTION_FORM})!", color=Color.blurple()) - - try: - # Fetching topics. - channel_topics = TOPICS[ctx.channel.id] - - # If the channel isn't Python-related. - except KeyError: - embed.title = f"**{next(TOPICS['default'])}**" - - # If the channel ID doesn't have any topics. - else: - embed.title = f"**{next(channel_topics)}**" - - finally: - await ctx.send(embed=embed) - - -def setup(bot: Bot) -> None: - """Load the ConvoStarters cog.""" - bot.add_cog(ConvoStarters()) |