mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 19:28:54 -05:00
Merge branch 'cog-changes' into develop
This commit is contained in:
commit
bb99430a9b
@ -21,6 +21,12 @@ __version__ = "0.0.1"
|
|||||||
log = logging.getLogger("red.audio")
|
log = logging.getLogger("red.audio")
|
||||||
log.setLevel(logging.DEBUG)
|
log.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
__author__ = "tekulvw"
|
||||||
|
__version__ = "0.0.1"
|
||||||
|
|
||||||
|
log = logging.getLogger("red.audio")
|
||||||
|
log.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import youtube_dl
|
import youtube_dl
|
||||||
except:
|
except:
|
||||||
@ -184,12 +190,10 @@ class Downloader(threading.Thread):
|
|||||||
video = self._yt.extract_info(self.url, download=False,
|
video = self._yt.extract_info(self.url, download=False,
|
||||||
process=False)
|
process=False)
|
||||||
else:
|
else:
|
||||||
self.url = self.url[9:]
|
|
||||||
yt_id = self._yt.extract_info(self.url,
|
|
||||||
download=False)["entries"][0]["id"] # Should handle errors here.
|
|
||||||
self.url = "https://youtube.com/watch?v={}".format(yt_id)
|
|
||||||
video = self._yt.extract_info(self.url, download=False,
|
video = self._yt.extract_info(self.url, download=False,
|
||||||
process=False)
|
process=False)
|
||||||
|
self.url = "https://youtube.com/watch?v={}".format(
|
||||||
|
video["entries"][0]["id"])
|
||||||
|
|
||||||
self.song = Song(**video)
|
self.song = Song(**video)
|
||||||
|
|
||||||
@ -469,20 +473,6 @@ class Audio:
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _list_playlists(self, server):
|
|
||||||
try:
|
|
||||||
server = server.id
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
path = "data/audio/playlists"
|
|
||||||
old_playlists = [f[:-4] for f in os.listdir(path) if f.endswith(".txt")]
|
|
||||||
path = os.path.join(path, server)
|
|
||||||
if os.path.exists(path):
|
|
||||||
new_playlists = [f[:-4] for f in os.listdir(path) if f.endswith(".txt")]
|
|
||||||
else:
|
|
||||||
new_playlists = []
|
|
||||||
return list(set(old_playlists + new_playlists))
|
|
||||||
|
|
||||||
def _list_local_playlists(self):
|
def _list_local_playlists(self):
|
||||||
ret = []
|
ret = []
|
||||||
for thing in os.listdir(self.local_playlist_path):
|
for thing in os.listdir(self.local_playlist_path):
|
||||||
@ -491,6 +481,22 @@ class Audio:
|
|||||||
log.debug("local playlists:\n\t{}".format(ret))
|
log.debug("local playlists:\n\t{}".format(ret))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def _list_playlists(self, server):
|
||||||
|
try:
|
||||||
|
server = server.id
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
path = "data/audio/playlists"
|
||||||
|
old_playlists = [f[:-4] for f in os.listdir(path)
|
||||||
|
if f.endswith(".txt")]
|
||||||
|
path = os.path.join(path, server)
|
||||||
|
if os.path.exists(path):
|
||||||
|
new_playlists = [f[:-4] for f in os.listdir(path)
|
||||||
|
if f.endswith(".txt")]
|
||||||
|
else:
|
||||||
|
new_playlists = []
|
||||||
|
return list(set(old_playlists + new_playlists))
|
||||||
|
|
||||||
def _load_playlist(self, server, name, local=True):
|
def _load_playlist(self, server, name, local=True):
|
||||||
try:
|
try:
|
||||||
server = server.id
|
server = server.id
|
||||||
@ -611,7 +617,7 @@ class Audio:
|
|||||||
assert type(server) is discord.Server
|
assert type(server) is discord.Server
|
||||||
log.debug('starting to play on "{}"'.format(server.name))
|
log.debug('starting to play on "{}"'.format(server.name))
|
||||||
|
|
||||||
if self._valid_playable_url(url) or "[SEARCH:]" in url:
|
if self._valid_playable_url(url):
|
||||||
song = await self._guarantee_downloaded(server, url)
|
song = await self._guarantee_downloaded(server, url)
|
||||||
local = False
|
local = False
|
||||||
else: # Assume local
|
else: # Assume local
|
||||||
@ -1028,6 +1034,12 @@ class Audio:
|
|||||||
author = ctx.message.author
|
author = ctx.message.author
|
||||||
voice_channel = author.voice_channel
|
voice_channel = author.voice_channel
|
||||||
|
|
||||||
|
# Checking if playing in current server
|
||||||
|
|
||||||
|
if self.is_playing(server):
|
||||||
|
await self.bot.say("I'm already playing a song on this server!")
|
||||||
|
return # TODO: Possibly execute queue?
|
||||||
|
|
||||||
# Checking already connected, will join if not
|
# Checking already connected, will join if not
|
||||||
|
|
||||||
caller = inspect.currentframe().f_back.f_code.co_name
|
caller = inspect.currentframe().f_back.f_code.co_name
|
||||||
@ -1049,12 +1061,6 @@ class Audio:
|
|||||||
await self._stop_and_disconnect(server)
|
await self._stop_and_disconnect(server)
|
||||||
await self._join_voice_channel(voice_channel)
|
await self._join_voice_channel(voice_channel)
|
||||||
|
|
||||||
# Checking if playing in current server
|
|
||||||
|
|
||||||
if self.is_playing(server):
|
|
||||||
await self.bot.say("I'm already playing a song on this server!")
|
|
||||||
return # TODO: Possibly execute queue?
|
|
||||||
|
|
||||||
# If not playing, spawn a downloader if it doesn't exist and begin
|
# If not playing, spawn a downloader if it doesn't exist and begin
|
||||||
# downloading the next song
|
# downloading the next song
|
||||||
|
|
||||||
@ -1232,6 +1238,7 @@ class Audio:
|
|||||||
server, name))
|
server, name))
|
||||||
if caller == "playlist_start_mix":
|
if caller == "playlist_start_mix":
|
||||||
shuffle(playlist.playlist)
|
shuffle(playlist.playlist)
|
||||||
|
|
||||||
self._play_playlist(server, playlist)
|
self._play_playlist(server, playlist)
|
||||||
await self.bot.say("Playlist queued.")
|
await self.bot.say("Playlist queued.")
|
||||||
else:
|
else:
|
||||||
@ -1361,8 +1368,9 @@ class Audio:
|
|||||||
song = self.queue[server.id]["NOW_PLAYING"]
|
song = self.queue[server.id]["NOW_PLAYING"]
|
||||||
if song:
|
if song:
|
||||||
msg = ("\n**Title:** {}\n**Author:** {}\n**Uploader:** {}\n"
|
msg = ("\n**Title:** {}\n**Author:** {}\n**Uploader:** {}\n"
|
||||||
"**Views:** {}\n\n<{}>".format(song.title, song.creator,
|
"**Views:** {}\n\n<{}>".format(
|
||||||
song.uploader, song.view_count, song.webpage_url))
|
song.title, song.creator, song.view_count,
|
||||||
|
song.webpage_url))
|
||||||
await self.bot.say(msg.replace("**Author:** None\n", ""))
|
await self.bot.say(msg.replace("**Author:** None\n", ""))
|
||||||
else:
|
else:
|
||||||
await self.bot.say("I don't know what this song is either.")
|
await self.bot.say("I don't know what this song is either.")
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import os
|
|||||||
import logging
|
import logging
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
|
|
||||||
class Mod:
|
class Mod:
|
||||||
"""Moderation tools."""
|
"""Moderation tools."""
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user