def add(self, song_url: str, voice_client: discord.VoiceClient, user=None):
try:
song_player = await voice_client.create_ytdl_player(song_url, ytdl_options=ytdl_format_options)
except youtube_dl.DownloadError:
return youtube_dl.DownloadError
except youtube_dl.SameFileError:
return youtube_dl.SameFileError
except youtube_dl.utils.ExtractorError:
return youtube_dl.utils.ExtractorError
except youtube_dl.utils.UnavailableVideoError:
return youtube_dl.utils.UnavailableVideoError
user_name = "********"
if user is not None:
user_name = user.display_name
song = {"player": None, "url": song_player.url, "title": song_player.title,
"uploader": song_player.uploader, "user": user_name}
await self.__queue.put(song)
return song
# Get next song and delete it
python类VoiceClient()的实例源码
def _wrap(o, transport):
if isinstance(o, list) or isinstance(o, DICT_VALUES):
return [_wrap(item, transport) for item in o]
elif isinstance(o, tuple):
return tuple([_wrap(item, transport) for item in o])
elif isinstance(o, Client):
return transport
elif isinstance(o, _Server):
return DiscordServer(o, transport)
elif isinstance(o, _Channel):
return DiscordChannel(o, transport)
elif isinstance(o, _PrivateChannel):
return DiscordChannel(o, transport)
elif isinstance(o, _Message):
return DiscordMessage(o, transport)
elif isinstance(o, _Member):
return DiscordWrapper(o, transport)
elif isinstance(o, _User):
return DiscordWrapper(o, transport)
elif isinstance(o, VoiceClient):
return DiscordWrapper(o, transport)
elif isinstance(o, Enum):
return str(o)
return o
def pop(self, voice_client: discord.VoiceClient):
item = await self.__queue.get()
item['player'] = await voice_client.create_ytdl_player(item['url'], ytdl_options=ytdl_format_options)
return item
# Get if queue is empty
def voice_client(self, server: discord.Server) -> discord.VoiceClient:
return self.bot.voice_client_in(server)
def voice_client(self, server: discord.Server) -> discord.VoiceClient:
return self.bot.voice_client_in(server)
def voice_client(self, server: discord.Server) -> discord.VoiceClient:
return self.bot.voice_client_in(server)