aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Leon Sandøy <[email protected]>2018-07-10 10:23:17 +0000
committerGravatar Leon Sandøy <[email protected]>2018-07-10 10:23:17 +0000
commit214c20c3214466cc945cebdaea715d2a2d5e7305 (patch)
tree33d40506d9df3b25b3fc9bcfa741039b436bfcbc
parentMerge branch 'fix-numbers-in-channel-names' into 'master' (diff)
parentAdd bullet points. (diff)
Merge branch 'feature/otname-list-command' into 'master'
Add a `otname.list` command. See merge request python-discord/projects/bot!14
-rw-r--r--bot/cogs/off_topic_names.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/bot/cogs/off_topic_names.py b/bot/cogs/off_topic_names.py
index 922847918..90510c8c4 100644
--- a/bot/cogs/off_topic_names.py
+++ b/bot/cogs/off_topic_names.py
@@ -2,10 +2,12 @@ import asyncio
import logging
from datetime import datetime, timedelta
+from discord import Colour, Embed
from discord.ext.commands import BadArgument, Bot, Context, Converter, command
from bot.constants import Channels, Keys, Roles, URLs
from bot.decorators import with_role
+from bot.pagination import LinePaginator
CHANNELS = (Channels.off_topic_0, Channels.off_topic_1, Channels.off_topic_2)
@@ -104,6 +106,27 @@ class OffTopicNames:
error_reason = response.get('message', "No reason provided.")
await ctx.send(f":warning: got non-200 from the API: {error_reason}")
+ @command(name='otname.list()', aliases=['otname.list'])
+ @with_role(Roles.owner, Roles.admin, Roles.moderator)
+ async def otname_list(self, ctx):
+ """
+ Lists all currently known off-topic channel names in a paginator.
+ Restricted to Moderator and above to not spoil the surprise.
+ """
+
+ result = await self.bot.http_session.get(
+ URLs.site_off_topic_names_api,
+ headers=self.headers
+ )
+ response = await result.json()
+ lines = sorted(f"• {name}" for name in response)
+
+ embed = Embed(
+ title=f"Known off-topic names (`{len(response)}` total)",
+ colour=Colour.blue()
+ )
+ await LinePaginator.paginate(lines, ctx, embed, max_size=400, empty=False)
+
def setup(bot: Bot):
bot.add_cog(OffTopicNames(bot))