feat: Basic "My Vibe" implementation.

This commit is contained in:
Lemon4ksan
2025-01-26 22:07:47 +03:00
parent 85f7ee6c6c
commit c49ff949cf
11 changed files with 350 additions and 116 deletions

View File

@@ -119,12 +119,12 @@ class PlayButton(Button, VoiceExtension):
await self.play_track(interaction, track)
response_message = f"Сейчас играет: **{track.title}**!"
current_player = None
if guild['current_player']:
current_player = await self.get_menu_message(interaction, guild['current_player'])
current_menu = None
if guild['current_menu']:
current_menu = await self.get_menu_message(interaction, guild['current_menu'])
if current_player and interaction.message:
logging.debug(f"Deleting interaction message {interaction.message.id}: current player {current_player.id} found")
if current_menu and interaction.message:
logging.debug(f"Deleting interaction message {interaction.message.id}: current player {current_menu.id} found")
await interaction.message.delete()
else:
await interaction.respond(response_message, delete_after=15)

View File

@@ -69,7 +69,7 @@ class NextTrackButton(Button, VoiceExtension):
logging.info('Next track button callback...')
if not await self.voice_check(interaction):
return
title = await self.next_track(interaction)
title = await self.next_track(interaction, button_callback=True)
if not title:
await interaction.respond(f"Нет треков в очереди.", delete_after=15, ephemeral=True)
@@ -82,7 +82,7 @@ class PrevTrackButton(Button, VoiceExtension):
logging.info('Previous track button callback...')
if not await self.voice_check(interaction):
return
title = await self.prev_track(interaction)
title = await self.prev_track(interaction, button_callback=True)
if not title:
await interaction.respond(f"Нет треков в истории.", delete_after=15, ephemeral=True)
@@ -185,9 +185,9 @@ class MenuView(View, VoiceExtension):
if not self.ctx.guild_id:
return
if self.guild['current_player']:
self.db.update(self.ctx.guild_id, {'current_player': None, 'previous_tracks': []})
message = await self.get_menu_message(self.ctx, self.guild['current_player'])
if self.guild['current_menu']:
self.db.update(self.ctx.guild_id, {'current_menu': None, 'previous_tracks': []})
message = await self.get_menu_message(self.ctx, self.guild['current_menu'])
if message:
await message.delete()
logging.debug('Successfully deleted menu message')