diff --git a/bot.py b/bot.py index e08daa1..bcf9336 100644 --- a/bot.py +++ b/bot.py @@ -5,6 +5,7 @@ from typing import Dict from typing import List from typing import Sequence from typing import TYPE_CHECKING +import itertools import aioredis import discord @@ -46,19 +47,20 @@ if len(sys.argv) > 1: config = json.load(open(config_path, "r", encoding="utf-8")) redis_prefix = config["redis_prefix"] colors: Dict[str, Color] = process_colours(config["colors"]) +status_messages: Sequence[str] = config["info"]["status"]["messages"] +status_interval: int = config["info"]["status"]["interval"] class TuneBot(commands.Bot): lavalink: "lavalink.Client" invite_link: str + status_cycle = itertools.cycle(status_messages) def __init__(self, config: Dict[Any, Any]): intents = discord.Intents( voice_states=True, guild_messages=True, guilds=True, messages=True ) - self.rpc_is_help_message = True - self.config = config self.initial_cog_names: List[str] = self.config.get("cogs", []) @@ -98,8 +100,8 @@ class TuneBot(commands.Bot): self.update_status.start() async def prefix_callable(self, _, msg: Message): - logger.info(f"{self.config['prefixes']=}") - return commands.when_mentioned_or(*self.config["prefixes"])(self, msg) + logger.info(f"{self.config['prefix']=}") + return commands.when_mentioned_or(self.config["prefix"])(self, msg) async def load_cogs(self, cog_names: Sequence[str]): for cog in cog_names: @@ -146,18 +148,11 @@ class TuneBot(commands.Bot): def playlist_source_context(self, ctx: "ContextLike") -> "PlaylistSource": return RedisPlaylistSource(ctx) - @tasks.loop(seconds=30) + @tasks.loop(seconds=status_interval) async def update_status(self): await self.wait_until_ready() - - bot_prefix = self.config["prefixes"][0] - if self.rpc_is_help_message: - title = f"for {bot_prefix}connect | {bot_prefix}help" - activity = discord.Activity(name=title, type=ActivityType.watching) - else: - activity = discord.Activity(name="Some song", type=ActivityType.playing) - - self.rpc_is_help_message = not self.rpc_is_help_message + name = next(self.status_cycle) + activity = discord.Activity(name=name, type=ActivityType.listening) await self.change_presence(activity=activity) diff --git a/config.json.sample b/config.json.sample index e525458..2bca8c9 100644 --- a/config.json.sample +++ b/config.json.sample @@ -5,9 +5,7 @@ 190875175460405250 ], "manager_ids": [], - "prefixes": [ - "ck!" - ], + "prefix": "ck!", "redis_url": "", "redis_prefix": "", "lavalink": { @@ -22,7 +20,14 @@ }, "info": { "name": "CloudKid Radio", - "description": "A sample bot description" + "description": "A sample bot description", + "status": { + "messages": [ + "bangers", + "noises 🤖" + ], + "interval": 12 + } }, "cogs": [ "jishaku",