From 1b54e83ceaf3627f8a5114ddd3188285108514f5 Mon Sep 17 00:00:00 2001 From: Choco <94597336+ChocoMeow@users.noreply.github.com> Date: Thu, 10 Apr 2025 11:37:14 +0800 Subject: [PATCH] Fixed some bugs --- ipc/methods.py | 2 +- update.py | 2 +- voicelink/player.py | 11 +++++++---- voicelink/pool.py | 1 + 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ipc/methods.py b/ipc/methods.py index 200b4ec..8365b2b 100644 --- a/ipc/methods.py +++ b/ipc/methods.py @@ -297,7 +297,7 @@ async def updatePause(player: Player, member: Member, data: Dict) -> None: await player.set_pause(pause, member) @require_permission() -async def updatePosition(player: Player, member: Member, data: Dict) -> None: +async def updatePosition(player: Player, member: Member, data: Dict) -> None: position = data.get("position"); await player.seek(position, member); diff --git a/update.py b/update.py index b244bb5..c8a5a5d 100644 --- a/update.py +++ b/update.py @@ -25,7 +25,7 @@ import requests, zipfile, os, shutil, argparse from io import BytesIO ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) -__version__ = "v2.7.0b4" +__version__ = "v2.7.0" GITHUB_API_URL = "https://api.github.com/repos/ChocoMeow/Vocard/releases/latest" VOCARD_URL = "https://github.com/ChocoMeow/Vocard/archive/" diff --git a/voicelink/player.py b/voicelink/player.py index e3d0b76..5db80cc 100644 --- a/voicelink/player.py +++ b/voicelink/player.py @@ -47,7 +47,7 @@ from discord.ext import commands from . import events from .enums import SearchType, LoopType, RequestMethod from .events import VoicelinkEvent, TrackEndEvent, TrackStartEvent, TrackExceptionEvent -from .exceptions import VoicelinkException, FilterInvalidArgument, TrackInvalidPosition, TrackLoadError, FilterTagAlreadyInUse, DuplicateTrack +from .exceptions import VoicelinkException, FilterInvalidArgument, TrackInvalidPosition, FilterTagAlreadyInUse, DuplicateTrack from .filters import Filter, Filters from .objects import Track, Playlist from .pool import Node, NodePool @@ -73,6 +73,9 @@ async def connect_channel(ctx: Union[commands.Context, Interaction], channel: Vo channel, ctx, settings )) + if player.volume != 100: + await player.set_volume(player.volume) + if ctx.bot.ipc.is_connected: await player.send_ws({"op": "createPlayer", "memberIds": [str(member.id) for member in channel.members]}) @@ -591,9 +594,6 @@ class Player(VoiceProtocol): self._current = track - if self.volume != 100: - await self.set_volume(self.volume) - self._logger.debug(f"Player in {self.guild.name}({self.guild.id}) playing {track.title} from uri {track.uri} with a length of {track.length}") return self._current @@ -661,6 +661,9 @@ class Player(VoiceProtocol): async def seek(self, position: float, requester: Member = None) -> float: """Seeks to a position in the currently playing track milliseconds""" + if not self._current: + raise VoicelinkException("Nothing is playing right now") + if position < 0 or position > self._current.length: raise TrackInvalidPosition("Seek position must be between 0 and the track length") diff --git a/voicelink/pool.py b/voicelink/pool.py index 91a0f2a..ec625d0 100644 --- a/voicelink/pool.py +++ b/voicelink/pool.py @@ -388,6 +388,7 @@ class Node: return [Track(track_id=data["encoded"], info=data["info"], requester=requester)] async def get_recommendations(self, track: Track, limit: int = 20) -> List[Optional[Track]]: + query = "" if track.source == "youtube": query = f"https://www.youtube.com/watch?v={track.identifier}&list=RD{track.identifier}"