Fixed some bugs

This commit is contained in:
Choco
2023-09-17 14:13:56 +08:00
parent e2e6c0567e
commit ad6743e9c6
10 changed files with 41 additions and 29 deletions

View File

@@ -888,8 +888,7 @@ class Basic(commands.Cog):
category = "News"
view = HelpView(self.bot, ctx.author)
embed = view.build_embed(category)
message = await ctx.send(embed=embed, view=view)
view.response = message
view.response = await ctx.send(embed=embed, view=view)
@commands.hybrid_command(name="ping", aliases=get_aliases("ping"))
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)

View File

@@ -96,7 +96,7 @@ class Listeners(commands.Cog):
"op": "updateGuild",
"user": {
"user_id": member.id,
"avatar_url": member.avatar.url,
"avatar_url": member.display_avatar.url,
"name": member.name,
},
"channel_name": member.voice.channel.name if is_joined else "",

View File

@@ -204,8 +204,7 @@ class Playlists(commands.Cog, name="playlist"):
embed.set_footer(text=get_lang(ctx.guild.id, 'playlistFooter'))
view = PlaylistView(embed, results, ctx.author)
messsage = await ctx.send(embed=embed, view=view, ephemeral=True)
view.response = messsage
view.response = await ctx.send(embed=embed, view=view, ephemeral=True)
@playlist.command(name="create", aliases=get_aliases("create"))
@app_commands.describe(

View File

@@ -2,7 +2,7 @@ import requests, zipfile, os, shutil, argparse
from io import BytesIO
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
__version__ = "v2.6.6b5"
__version__ = "v2.6.7b6"
GITHUB_API_URL = "https://api.github.com/repos/ChocoMeow/Vocard/releases/latest"
VOCARD_URL = "https://github.com/ChocoMeow/Vocard/archive/"

View File

@@ -20,10 +20,13 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
from __future__ import annotations
import discord
from voicelink import Track
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from voicelink import Track
class SearchDropdown(discord.ui.Select):
def __init__(self, tracks: list[Track], get_msg: callable) -> None:

View File

@@ -1,6 +1,10 @@
from __future__ import annotations
import base64, io, abc, struct, dataclasses
from typing import Union, BinaryIO, Optional
from typing import Union, BinaryIO, Optional, TYPE_CHECKING
if TYPE_CHECKING:
from .objects import Track
@dataclasses.dataclass(frozen=True)
class Codec:
@@ -180,14 +184,14 @@ class TrackDecoder:
"identifier": body_reader.read_utf(),
"is_stream": body_reader.read_bool(),
"uri": body_reader.read_optional_utf(),
"thumbnail": None if version not in [0, 3] else body_reader.read_optional_utf(),
"artworkUrl": None if version not in [0, 3] else body_reader.read_optional_utf(),
"isrc": None if version != 3 else body_reader.read_optional_utf(),
"sourceName": body_reader.read_utf(),
"position": body_reader.read_long()
}
class TrackEncoder:
def encode(self, stream: MessageOutput, track) -> None:
def encode(self, stream: MessageOutput, track: Track) -> None:
body_writer = stream.start()
body_writer.write_byte(0)

View File

@@ -88,15 +88,11 @@ class Track:
self._search_type: SearchType = SearchType.ytmsearch if self.spotify else search_type
self.spotify_track: Track = spotify_track
self.thumbnail: str = None
self.emoji: str = emoji_source(self.source)
self.thumbnail: str = info.get("artworkUrl")
if not self.thumbnail and YOUTUBE_REGEX.match(self.uri):
self.thumbnail = f"https://img.youtube.com/vi/{self.identifier}/maxresdefault.jpg"
if artworkUrl := info.get("artworkUrl"):
self.thumbnail = artworkUrl
elif YOUTUBE_REGEX.match(self.uri):
self.thumbnail = f"https://img.youtube.com/vi/{self.identifier}/hqdefault.jpg"
self.emoji: str = emoji_source(self.source)
self.length: float = 3000 if self.source == "soundcloud" and "/preview/" in self.identifier else info.get("length")
self.requester: Member = requester

View File

@@ -401,20 +401,20 @@ class Node:
return [
Track(
track_id=None,
info=spotify_results.to_dict(),
requester=requester,
search_type=search_type,
spotify_track=spotify_results,
info=spotify_results.to_dict()
)
]
tracks = [
Track(
track_id=None,
info=track.to_dict(),
requester=requester,
search_type=search_type,
spotify_track=track,
info=track.to_dict()
) for track in spotify_results.tracks if track.uri
]
@@ -467,7 +467,7 @@ class Node:
raise TrackLoadError("There was an error while trying to load this track.")
elif load_type == "error":
exception = data["exception"]
exception = data["data"]
raise TrackLoadError(f"{exception['message']} [{exception['severity']}]")
elif load_type == "empty":

View File

@@ -1,5 +1,3 @@
from typing import List
class Track:
"""The base class for a Spotify Track"""
@@ -16,7 +14,7 @@ class Track:
def __init__(self, data: dict, image=None) -> None:
self.name: str = data.get('name', 'Unknown')
self.artists: str = ", ".join(artist["name"] for artist in data.get('artists'))
self.artist_id: list = [artist['id'] for artist in data.get('artists')]
self.artist_id: list[str] = [artist['id'] for artist in data.get('artists')]
self.length: int = data.get('duration_ms')
self.id: str = data.get('id')
self.image: str = images[0]["url"] if (images := data.get("album", {}).get("images")) else image
@@ -33,7 +31,7 @@ class Track:
"isStream": False,
"isSeekable": True,
"position": 0,
"thumbnail": self.image
"artworkUrl": self.image
}
def __repr__(self) -> str:
@@ -59,7 +57,7 @@ class Album:
self.name: str = data.get('name', 'Unknown')
self.artists: str = ", ".join(artist["name"] for artist in data.get('artists'))
self.image: str = data["images"][0]["url"]
self.tracks: list = [Track(track, image=self.image) for track in data["tracks"]["items"]]
self.tracks: list[Track] = [Track(track, image=self.image) for track in data["tracks"]["items"]]
self.total_tracks: int = data["total_tracks"]
self.id: str = data.get('id')
self.uri: str = data["external_urls"]["spotify"]
@@ -83,7 +81,7 @@ class Artist:
"name"
)
def __init__(self, data: dict) -> None:
self.tracks: List[Track] = [Track(track) for track in data['tracks']]
self.tracks: list[Track] = [Track(track) for track in data['tracks']]
if self.tracks:
self.image: str = self.tracks[0].image
self.total_tracks: int = len(self.tracks)
@@ -111,9 +109,9 @@ class Playlist:
"uri"
)
def __init__(self, data: dict, tracks: List[Track]) -> None:
def __init__(self, data: dict, tracks: list[Track]) -> None:
self.name: str = data.get('name', 'Unknown')
self.tracks: List[Track] = tracks
self.tracks: list[Track] = tracks
self.owner: str = data["owner"]["display_name"]
self.total_tracks: int = data["tracks"]["total"]
self.id: str = data.get('id')

View File

@@ -130,6 +130,19 @@ const decoders = [
const source = input.readUTF();
return { track_id, title, author, length, identifier, isStream, uri, thumbnail: null, source, position: 0n };
},
(input, track_id) => {
const title = input.readUTF();
const author = input.readUTF();
const length = input.readLong();
const identifier = input.readUTF();
const isStream = input.readBoolean();
const uri = input.readBoolean() ? input.readUTF() : null;
const thumbnail = input.readBoolean() ? input.readUTF() : null;
const isrc = input.readBoolean() ? input.readUTF() : null;
const source = input.readUTF();
return { track_id, title, author, length, identifier, isStream, uri, thumbnail, source, position: 0n };
}
]
function decode(track_id) {