aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts
diff options
context:
space:
mode:
Diffstat (limited to 'bot/exts')
-rw-r--r--bot/exts/easter/conversationstarters.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/bot/exts/easter/conversationstarters.py b/bot/exts/easter/conversationstarters.py
index a5f40445..0c773119 100644
--- a/bot/exts/easter/conversationstarters.py
+++ b/bot/exts/easter/conversationstarters.py
@@ -2,6 +2,7 @@ import json
import logging
import random
from pathlib import Path
+from discord import Embed
from discord.ext import commands
@@ -10,6 +11,10 @@ log = logging.getLogger(__name__)
with open(Path("bot/resources/easter/starter.json"), "r", encoding="utf8") as f:
starters = json.load(f)
+with open(Path("bot/resources/easter/py_topics.json"), "r", encoding="utf8") as f:
+ # First ID is #python-general and the rest are top to bottom categories of Topical Chat/Help.
+ py_topics = json.load(f)
+
class ConvoStarters(commands.Cog):
"""Easter conversation topics."""
@@ -19,7 +24,25 @@ class ConvoStarters(commands.Cog):
@commands.command()
async def topic(self, ctx: commands.Context) -> None:
- """Responds with a random topic to start a conversation."""
+ """Responds with a random topic to start a conversation, changing depending on channel."""
+
+ # Fetching topics.
+ channel_topics = py_topic[str(ctx.channel.id)]
+
+ if channel_topics:
+ return await ctx.send(random.choice(channel_topics['python-channels']))
+
+ else:
+ # If the channel ID doesn't have any topics.
+ embed = Embed(
+ description=(
+ "No topics found. You can suggest new ideas for topics "
+ "[here](https://github.com/python-discord/seasonalbot/issues/426)!"
+ ))
+
+ return await ctx.send(embed=embed)
+
+ # If the channel isn't Python.
await ctx.send(random.choice(starters['starters']))