1
This commit is contained in:
50
main.py
50
main.py
@@ -24,6 +24,14 @@ ffmpeg_options = {
|
|||||||
'options': '-vn'
|
'options': '-vn'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ffmpeg_super_bass_options = {
|
||||||
|
'options': '-af "equalizer=f=160:width_type=o:width=1:g=10, equalizer=f=30:width_type=o:width=1:g=5, equalizer=f=50:width_type=o:width=1:g=5"'
|
||||||
|
}
|
||||||
|
|
||||||
|
ffmpeg_bass_options = {
|
||||||
|
'options': '-af "equalizer=f=160:width_type=o:width=1:g=10, equalizer=f=30:width_type=o:width=1:g=3, equalizer=f=50:width_type=o:width=1:g=3"'
|
||||||
|
}
|
||||||
|
|
||||||
ytdl = youtube_dl.YoutubeDL(ytdl_format_options)
|
ytdl = youtube_dl.YoutubeDL(ytdl_format_options)
|
||||||
|
|
||||||
|
|
||||||
@@ -48,6 +56,30 @@ class YTDLSource(discord.PCMVolumeTransformer):
|
|||||||
filename = data['url'] if stream else ytdl.prepare_filename(data)
|
filename = data['url'] if stream else ytdl.prepare_filename(data)
|
||||||
return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)
|
return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def bass_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_bass_options), data=data)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def superbass_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_super_bass_options), data=data)
|
||||||
|
|
||||||
|
|
||||||
class Music(commands.Cog):
|
class Music(commands.Cog):
|
||||||
def __init__(self, bot):
|
def __init__(self, bot):
|
||||||
@@ -67,6 +99,22 @@ class Music(commands.Cog):
|
|||||||
|
|
||||||
await ctx.send('Now playing: {}'.format(player.title))
|
await ctx.send('Now playing: {}'.format(player.title))
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
async def bassboost(self, ctx, *, url):
|
||||||
|
async with ctx.typing():
|
||||||
|
player = await YTDLSource.bass_from_url(url, loop=self.bot.loop, stream=True)
|
||||||
|
ctx.voice_client.play(player, after=lambda e: print('Player error: %s' % e) if e else None)
|
||||||
|
|
||||||
|
await ctx.send('Now playing: {}'.format(player.title))
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
async def superbass(self, ctx, *, url):
|
||||||
|
async with ctx.typing():
|
||||||
|
player = await YTDLSource.superbass_from_url(url, loop=self.bot.loop, stream=True)
|
||||||
|
ctx.voice_client.play(player, after=lambda e: print('Player error: %s' % e) if e else None)
|
||||||
|
|
||||||
|
await ctx.send('Now playing: {}'.format(player.title))
|
||||||
|
|
||||||
@commands.command()
|
@commands.command()
|
||||||
async def volume(self, ctx, volume: int):
|
async def volume(self, ctx, volume: int):
|
||||||
"""Changes the player's volume"""
|
"""Changes the player's volume"""
|
||||||
@@ -84,6 +132,8 @@ class Music(commands.Cog):
|
|||||||
await ctx.voice_client.disconnect()
|
await ctx.voice_client.disconnect()
|
||||||
|
|
||||||
@play.before_invoke
|
@play.before_invoke
|
||||||
|
@bassboost.before_invoke
|
||||||
|
@superbass.before_invoke
|
||||||
async def ensure_voice(self, ctx):
|
async def ensure_voice(self, ctx):
|
||||||
if ctx.voice_client is None:
|
if ctx.voice_client is None:
|
||||||
if ctx.author.voice:
|
if ctx.author.voice:
|
||||||
|
|||||||
Reference in New Issue
Block a user