Fixed some bugs

This commit is contained in:
Choco
2025-04-10 11:37:14 +08:00
parent 3699590c0e
commit 1b54e83cea
4 changed files with 10 additions and 6 deletions

View File

@@ -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);

View File

@@ -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/"

View File

@@ -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")

View File

@@ -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}"