YT works, fixed some things

This commit is contained in:
CramMK
2020-02-13 23:40:41 +01:00
parent 4bf09b5588
commit 62ffb375bd
6 changed files with 75 additions and 77 deletions

View File

@@ -32,8 +32,9 @@ class Anime(commands.Cog):
@commands.command(name="waifumedia")
async def waifumedia(self, ctx, waifu: str):
"""
Sends a random pic of a waifu (list in config/media.py)
Sends a random pic of a waifu
"""
# config/media.py
try:
media = random.choice(loadconfig.__media_waifu__[waifu])
await ctx.send(media)

View File

@@ -26,7 +26,6 @@ class General(commands.Cog):
"""
embed = discord.Embed(colour=discord.Colour.blue())
embed.set_thumbnail(url=ctx.me.avatar_url)
embed.set_image(url=ctx.me.avatar_url)
embed.add_field(name="Owner", value=self.bot.AppInfo.owner, inline=True)
embed.add_field(name="Command Prefix", value=loadconfig.__prefix__, inline=True)

View File

@@ -22,9 +22,8 @@ class Help(commands.Cog):
"""
response = (
"I'm the usele... divine AquaBot!\n"
"If you need help. try using the `help` command!"
)
await ctx.send(response)
"If you need help. try using the `help` command!")
await ctx.send(response)
# COG ENDING

View File

@@ -20,21 +20,19 @@ class Utility(commands.Cog):
# COG BODY
@commands.command(name="invitelink", aliases=["invite"])
async def invite_link(self, ctx, age: int, uses: int, unique: bool):
async def invite_link(self, ctx):
"""
Sends the server's invitelink to chat
"""
if age is None:
age = 60
if uses is None:
uses = 100
if unique is None:
unique = True
age = 60 * 10
uses = 100
unique = True
link = await bot.create_invite(
channel = ctx.message.channel
link = await channel.create_invite(
max_age = age,
max_uses = uses,
unique = uses,
unique = unique,
reason = "Created by AquaBot")
link_embed = discord.Embed(color=discord.Colour.blue())
@@ -44,7 +42,7 @@ class Utility(commands.Cog):
inline=True)
link_embed.set_footer(
text=f"Age: {age}, Uses: {uses}, Unique: {unique}",
icon_url=loadconfig.__avater__
icon_url=loadconfig.__avatar__
)
await ctx.send(embed=link_embed)

View File

@@ -59,77 +59,78 @@ class Voice(commands.Cog):
await ctx.send("I'm not connected to a channel!")
# Begin of YouTube Player
youtube_dl.utils.bug_reports_message = lambda: ''
ytdl_format_options = {
'format': 'bestaudio/best',
'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'ignoreerrors': False,
'logtostderr': False,
'quiet': True,
'no_warnings': True,
'default_search': 'auto',
'source_address': '0.0.0.0'
}
ffmpeg_options = {
'options': '-vn'
}
ytdl = youtube_dl.YoutubeDL(ytdl_format_options)
class YTDLSource(discord.PCMVolumeTransformer):
def __init__(self, source, *, data, volume=0.5):
super().__init__(source, volume)
self.data = data
self.title = data.get('title')
self.url = data.get('url')
# Maybe i can make a fancy embed out of this?
self.uploader = data.get('uploader')
self.uploader_url = data.get('uploader_url')
date = data.get('upload_date')
self.upload_date = date[6:8] + '.' + date[4:6] + '.' + date[0:4]
self.title = data.get('title')
self.thumbnail = data.get('thumbnail')
self.description = data.get('description')
self.duration = self.parse_duration(int(data.get('duration')))
self.tags = data.get('tags')
self.url = data.get('webpage_url')
self.views = data.get('view_count')
self.likes = data.get('like_count')
self.dislikes = data.get('dislike_count')
self.stream_url = data.get('url')
@classmethod
async def from_url(cls, url, *, loop=None, stream=False):
loop = loop or asyncio.get_event_loop()
data = await loop.run_in_executor(
None,
lambda: ytdl.extract_info(url, download=not stream))
if 'entries' in data:
# take first item from a playlist
data = data['entries'][0]
filename = data['url'] if stream else ytdl.prepare_filename(data)
return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)
# Begin of YouTube Player
@commands.command(name="play", aliases=["p"])
@commands.guild_only()
async def play(self, ctx, url: str):
"""
Plays music from YouTube
"""
voice = get(bot.voice_clients, guild=ctx.guild)
youtube_dl.utils.bug_reports_message = lambda: ''
ytdl_format_options = {
'format': 'bestaudio/best',
'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'ignoreerrors': False,
'logtostderr': False,
'quiet': True,
'no_warnings': True,
'default_search': 'auto',
'source_address': '0.0.0.0'
}
ffmpeg_options = {
'options': '-vn'
}
ytdl = youtube_dl.YoutubeDL(ytdl_format_options)
class YTDLSource(discord.PCMVolumeTransformer):
def __init__(self, source, *, data, volume=0.5):
super().__init__(source, volume)
self.data = data
self.title = data.get('title')
self.url = data.get('url')
# Maybe i can make a fancy embed out of this?
self.uploader = data.get('uploader')
self.uploader_url = data.get('uploader_url')
date = data.get('upload_date')
self.upload_date = date[6:8] + '.' + date[4:6] + '.' + date[0:4]
self.title = data.get('title')
self.thumbnail = data.get('thumbnail')
self.description = data.get('description')
# self.duration = self.parse_duration(int(data.get('duration')))
self.tags = data.get('tags')
self.url = data.get('webpage_url')
self.views = data.get('view_count')
self.likes = data.get('like_count')
self.dislikes = data.get('dislike_count')
self.stream_url = data.get('url')
@classmethod
async def from_url(cls, url, *, loop=None, stream=False):
loop = loop or asyncio.get_event_loop()
data = await loop.run_in_executor(
None,
lambda: ytdl.extract_info(url, download=not stream))
if 'entries' in data:
# take first item from a playlist
data = data['entries'][0]
filename = data['url'] if stream else ytdl.prepare_filename(data)
return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)
voice = get(self.bot.voice_clients, guild=ctx.guild)
async with ctx.typing():
player = await YTDLSource.from_url(url, loop=self.bot.loop)
ctx.voice.play(
voice.play(
player,
after=lambda e: print('Player error: %s' % e) if e else None))
after=lambda e: print('Player error: %s' % e) if e else None)
await ctx.send(f"Now playing: {player.title}")
# End of YouTube Player