refactor: follow more guidelines
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
from . import discord, queue, utils, youtubedl
|
||||
|
||||
__all__ = ["utils", "queue", "youtubedl", "discord"]
|
||||
__all__ = [
|
||||
"discord",
|
||||
"queue",
|
||||
"utils",
|
||||
"youtubedl",
|
||||
]
|
||||
|
@@ -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
|
||||
|
@@ -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):
|
||||
|
@@ -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,
|
||||
)
|
||||
|
Reference in New Issue
Block a user