From cf3295f0db073e8e04093d6663575fb5d0c05552 Mon Sep 17 00:00:00 2001 From: Lemon4ksan Date: Fri, 21 Mar 2025 19:10:43 +0300 Subject: [PATCH 1/3] fix: Add missing YM clients to work outside of Russia. --- MusicBot/cogs/utils/voice_extension.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/MusicBot/cogs/utils/voice_extension.py b/MusicBot/cogs/utils/voice_extension.py index 8ad7399..1a4612e 100644 --- a/MusicBot/cogs/utils/voice_extension.py +++ b/MusicBot/cogs/utils/voice_extension.py @@ -2,10 +2,11 @@ import asyncio import aiofiles import logging import io + from typing import Any, Literal, cast import yandex_music.exceptions -from yandex_music import Track, TrackShort, ClientAsync as YMClient +from yandex_music import Track, TrackShort import discord from discord import Interaction, ApplicationContext, RawReactionActionEvent @@ -49,7 +50,7 @@ class VoiceExtension(BaseBot): else: track = cast(Track, Track.de_json( guild['current_track'], - client=YMClient() # type: ignore + client=await self.init_ym_client(ctx) # type: ignore )) embed = await generate_item_embed(track, guild['vibing']) @@ -155,7 +156,7 @@ class VoiceExtension(BaseBot): track = cast(Track, Track.de_json( guild['current_track'], - client=YMClient() # type: ignore + client=await self.init_ym_client(ctx) # type: ignore )) embed = await generate_item_embed(track, guild['vibing']) From cf63953dad6defc1ee250737a589f79d25ddaf45 Mon Sep 17 00:00:00 2001 From: Lemon4ksan Date: Fri, 21 Mar 2025 19:39:37 +0300 Subject: [PATCH 2/3] fix: Add defer to some buttons. --- MusicBot/cogs/utils/voice_extension.py | 4 ---- MusicBot/ui/menu.py | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MusicBot/cogs/utils/voice_extension.py b/MusicBot/cogs/utils/voice_extension.py index 1a4612e..8d7b087 100644 --- a/MusicBot/cogs/utils/voice_extension.py +++ b/MusicBot/cogs/utils/voice_extension.py @@ -907,10 +907,6 @@ class VoiceExtension(BaseBot): if guild['current_menu']: await self.update_menu_embed_and_view(ctx, button_callback=button_callback) - if not guild['vibing']: - # Giving FFMPEG enough time to process the audio file - await asyncio.sleep(1) - loop = self.get_current_event_loop(ctx) try: vc.play(song, after=lambda exc: asyncio.run_coroutine_threadsafe(self.play_next_track(ctx, after=True), loop)) diff --git a/MusicBot/ui/menu.py b/MusicBot/ui/menu.py index ed3b0b4..adecc05 100644 --- a/MusicBot/ui/menu.py +++ b/MusicBot/ui/menu.py @@ -194,6 +194,8 @@ class SwitchTrackButton(Button, VoiceExtension): ) return + await interaction.response.defer() + if callback_type == 'next': title = await self.play_next_track(interaction, button_callback=True) else: @@ -381,6 +383,8 @@ class MyVibeButton(Button, VoiceExtension): } ) return + + await interaction.response.defer() if track: logging.info(f"[MENU] Playing vibe for track '{track["id"]}'") From 8852f3fc62ba851bdc06a9e88988b6e239ea4b68 Mon Sep 17 00:00:00 2001 From: Lemon4ksan Date: Tue, 25 Mar 2025 11:54:03 +0300 Subject: [PATCH 3/3] Revert "fix: Add defer to some buttons." --- MusicBot/cogs/utils/voice_extension.py | 4 ++++ MusicBot/ui/menu.py | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MusicBot/cogs/utils/voice_extension.py b/MusicBot/cogs/utils/voice_extension.py index 8d7b087..1a4612e 100644 --- a/MusicBot/cogs/utils/voice_extension.py +++ b/MusicBot/cogs/utils/voice_extension.py @@ -907,6 +907,10 @@ class VoiceExtension(BaseBot): if guild['current_menu']: await self.update_menu_embed_and_view(ctx, button_callback=button_callback) + if not guild['vibing']: + # Giving FFMPEG enough time to process the audio file + await asyncio.sleep(1) + loop = self.get_current_event_loop(ctx) try: vc.play(song, after=lambda exc: asyncio.run_coroutine_threadsafe(self.play_next_track(ctx, after=True), loop)) diff --git a/MusicBot/ui/menu.py b/MusicBot/ui/menu.py index adecc05..ed3b0b4 100644 --- a/MusicBot/ui/menu.py +++ b/MusicBot/ui/menu.py @@ -194,8 +194,6 @@ class SwitchTrackButton(Button, VoiceExtension): ) return - await interaction.response.defer() - if callback_type == 'next': title = await self.play_next_track(interaction, button_callback=True) else: @@ -383,8 +381,6 @@ class MyVibeButton(Button, VoiceExtension): } ) return - - await interaction.response.defer() if track: logging.info(f"[MENU] Playing vibe for track '{track["id"]}'")