from logging import Logger from discord import ApplicationContext, Bot, Cog, slash_command from service import QueueManager from usecase import Sources class Music(Cog): def __init__( self, bot: Bot, logger: Logger, queueManager: QueueManager, sources: Sources ): self.bot = bot self.logger = logger self.queueManager = queueManager self.sources = sources @slash_command(name="play") async def play(self, context: ApplicationContext, query: str): async with self.queueManager(context.guild_id) as queue: interaction = await context.respond(f"searching {query} ...") entries = await self.sources.processQuery(interaction, query) queue.add(entries) await interaction.edit_original_response(content=entries[0].title.name)