From 45d27b4c47b08cb8bdbe8325beb6c1465c28d187 Mon Sep 17 00:00:00 2001 From: Rafael Vargas Date: Sat, 1 Jul 2023 16:12:21 -0300 Subject: [PATCH] Fixing mobile youtube links and volume returning to 100% when changing songs --- Music/Searcher.py | 13 ++++++------- Parallelism/ProcessPlayer.py | 5 ++++- Parallelism/ThreadPlayer.py | 5 ++++- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Music/Searcher.py b/Music/Searcher.py index c9a6155..c277547 100644 --- a/Music/Searcher.py +++ b/Music/Searcher.py @@ -1,14 +1,14 @@ from Config.Exceptions import DeezerError, InvalidInput, SpotifyError, VulkanError, YoutubeError -from Music.Downloader import Downloader -from Music.Types import Provider from Music.SpotifySearcher import SpotifySearch from Music.DeezerSearcher import DeezerSearcher -from Utils.Utils import Utils from Utils.UrlAnalyzer import URLAnalyzer from Config.Messages import SearchMessages +from Music.Downloader import Downloader +from Music.Types import Provider +from Utils.Utils import Utils -class Searcher(): +class Searcher: def __init__(self) -> None: self.__spotify = SpotifySearch() self.__deezer = DeezerSearcher() @@ -35,8 +35,7 @@ class Searcher(): try: musics = self.__spotify.search(track) if musics == None or len(musics) == 0: - raise SpotifyError(self.__messages.SPOTIFY_NOT_FOUND, - self.__messages.GENERIC_TITLE) + raise SpotifyError(self.__messages.SPOTIFY_NOT_FOUND, self.__messages.GENERIC_TITLE) return musics except SpotifyError as error: @@ -79,7 +78,7 @@ class Searcher(): if not Utils.is_url(track): return Provider.Name - if "https://www.youtu" in track or "https://youtu.be" in track or "https://music.youtube" in track: + if "https://www.youtu" in track or "https://youtu.be" in track or "https://music.youtube" in track or "m.youtube" in track: return Provider.YouTube if "https://open.spotify.com" in track: diff --git a/Parallelism/ProcessPlayer.py b/Parallelism/ProcessPlayer.py index b17b4fe..7b12208 100644 --- a/Parallelism/ProcessPlayer.py +++ b/Parallelism/ProcessPlayer.py @@ -54,7 +54,9 @@ class ProcessPlayer(Process): self.__voiceChannel: VoiceChannel = None self.__voiceClient: VoiceClient = None + self.__songVolumeUsing = 1 self.__currentSongChangeVolume = False + self.__playing = False self.__forceStop = False self.__botCompletedLoad = False @@ -120,6 +122,7 @@ class ProcessPlayer(Process): print('[PROCESS ERROR] -> Cannot change the volume of this song') return + self.__songVolumeUsing = volume self.__voiceClient.source.volume = volume except Exception as e: print(e) @@ -178,7 +181,7 @@ class ProcessPlayer(Process): player = FFmpegPCMAudio(song.source, **self.FFMPEG_OPTIONS) if not player.is_opus(): - player = PCMVolumeTransformer(player, 1) + player = PCMVolumeTransformer(player, self.__songVolumeUsing) self.__currentSongChangeVolume = True self.__voiceClient.play(player, after=lambda e: self.__playNext(e)) diff --git a/Parallelism/ThreadPlayer.py b/Parallelism/ThreadPlayer.py index 44b2620..37f587a 100644 --- a/Parallelism/ThreadPlayer.py +++ b/Parallelism/ThreadPlayer.py @@ -46,6 +46,8 @@ class ThreadPlayer(Thread): self.__voiceClient: VoiceClient = None self.__currentSongChangeVolume = False + self.__songVolumeUsing = 1 + self.__downloader = Downloader() self.__callback = callbackToSendCommand self.__exitCB = exitCB @@ -78,6 +80,7 @@ class ThreadPlayer(Thread): print('[THREAD ERROR] -> Cannot change the volume of this song') return + self.__songVolumeUsing = volume self.__voiceClient.source.volume = volume except Exception as e: print(e) @@ -136,7 +139,7 @@ class ThreadPlayer(Thread): player = FFmpegPCMAudio(song.source, **self.FFMPEG_OPTIONS) if not player.is_opus(): - player = PCMVolumeTransformer(player, 1) + player = PCMVolumeTransformer(player, self.__songVolumeUsing) self.__currentSongChangeVolume = True self.__voiceClient.play(player, after=lambda e: self.__playNext(e))