aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/evergreen/conversationstarters.py
diff options
context:
space:
mode:
authorGravatar Janine vN <[email protected]>2021-09-05 00:12:47 -0400
committerGravatar Janine vN <[email protected]>2021-09-05 00:12:47 -0400
commit66c888ad68ad88ba1d39c2ac4824469560b8c29a (patch)
tree706917000c39c3af1fc92c47fd59fe31a63f601a /bot/exts/evergreen/conversationstarters.py
parentMove 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.py69
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())