refactor: follow more guidelines

This commit is contained in:
2025-04-03 17:32:44 -04:00
parent f360566824
commit ec31250153
20 changed files with 122 additions and 86 deletions

View File

@@ -1,3 +1,8 @@
from . import discord, queue, utils, youtubedl
__all__ = ["utils", "queue", "youtubedl", "discord"]
__all__ = [
"discord",
"queue",
"utils",
"youtubedl",
]

View File

@@ -26,7 +26,7 @@ class TrackedAudioSource(disnake.AudioSource):
class PCMVolumeTransformer(disnake.AudioSource):
def __init__(self, original: TrackedAudioSource, volume: float = 1.0) -> None:
if original.is_opus():
raise disnake.ClientException("AudioSource must not be Opus encoded.")
raise disnake.ClientException("AudioSource must not be Opus encoded")
self.original = original
self.volume = volume

View File

@@ -1,6 +1,6 @@
import collections
from dataclasses import dataclass
from typing import Optional
from typing import ClassVar, Optional
import disnake
@@ -16,20 +16,19 @@ class Song:
trigger_message: disnake.Message
def format(self, show_queuer=False, hide_preview=False, multiline=False) -> str:
title = f"[`{self.player.title}`]({'<' if hide_preview else ''}{self.player.original_url}{'>' if hide_preview else ''})"
duration = (
format_duration(self.player.duration) if self.player.duration else "stream"
)
if multiline:
return (
f"[`{self.player.title}`]({'<' if hide_preview else ''}{self.player.original_url}{'>' if hide_preview else ''})\n**duration:** {format_duration(self.player.duration) if self.player.duration else '[stream]'}"
+ (
f", **queued by:** <@{self.trigger_message.author.id}>"
if show_queuer
else ""
)
)
else:
return (
f"[`{self.player.title}`]({'<' if hide_preview else ''}{self.player.original_url}{'>' if hide_preview else ''}) [**{format_duration(self.player.duration) if self.player.duration else 'stream'}**]"
+ (f" (<@{self.trigger_message.author.id}>)" if show_queuer else "")
return f"{title}\n**duration:** {duration}" + (
f", **queued by:** <@{self.trigger_message.author.id}>"
if show_queuer
else ""
)
return f"{title} [**{duration}**]" + (
f" (<@{self.trigger_message.author.id}>)" if show_queuer else ""
)
def embed(self, is_paused=False):
progress = 0
@@ -90,7 +89,7 @@ class Song:
@dataclass
class Player:
queue = collections.deque()
queue: ClassVar = collections.deque()
current: Optional[Song] = None
def queue_pop(self):

View File

@@ -13,7 +13,11 @@ ytdl = yt_dlp.YoutubeDL(YTDL_OPTIONS)
class YTDLSource(PCMVolumeTransformer):
def __init__(
self, source: TrackedAudioSource, *, data: dict[str, Any], volume: float = 0.5
self,
source: TrackedAudioSource,
*,
data: dict[str, Any],
volume: float = 0.5,
):
super().__init__(source, volume)
@@ -39,7 +43,8 @@ class YTDLSource(PCMVolumeTransformer):
):
loop = loop or asyncio.get_event_loop()
data: Any = await loop.run_in_executor(
None, lambda: ytdl.extract_info(url, download=not stream)
None,
lambda: ytdl.extract_info(url, download=not stream),
)
if "entries" in data:
@@ -54,7 +59,7 @@ class YTDLSource(PCMVolumeTransformer):
disnake.FFmpegPCMAudio(
data["url"] if stream else ytdl.prepare_filename(data),
before_options="-vn -reconnect 1",
)
),
),
data=data,
)