26 lines
837 B
Python
26 lines
837 B
Python
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)
|