diff --git a/py/cogs/voice.py b/py/cogs/voice.py
index 2cf9ec5..3530223 100644
--- a/py/cogs/voice.py
+++ b/py/cogs/voice.py
@@ -16,8 +16,9 @@ class Voice(commands.Cog):
password=self.bot.config["wavelink"]["password"],)
@commands.Cog.listener()
- async def on_track_end(self, player, track, reason):
- if not reason == wavelink.TrackEndReason.STOPPED or self.queue.is_empty:
+ async def on_wavelink_track_end(self, player, track, reason):
+ print("track ended")
+ if not self.queue.is_empty:
await player.play(self.queue.get())
@bridge.bridge_command(alises=["j"])
@@ -42,32 +43,15 @@ class Voice(commands.Cog):
@bridge.bridge_command(aliases=["p"])
async def play(self, ctx, *, link: str=""):
await ctx.defer()
-
- #check for overrides
- # args = link.split(" ")
- # print(args[6])
- # for arg in range(len(args)-1):
- # print(arg)
- # print(args[arg])
- # if args[arg] == "-channel" or args[arg] == "-c":
- # channel = self.bot.get_channel(discord.utils.get(ctx.guild.channels, name=args[arg+1]).id)
- # providedchannel = True
- # if args[arg] == "-now" or args[arg] == "-n":
- # queueoverride = True
- # if args[arg] == "-earrape" or args[arg] == "-e":
- # earape = True
providedchannel = False
queueoverride = False
earape = False
channel = ""
args = link.split(" -")
- print(args)
if len(args) > 1:
for arg in range(len(args)):
if args[arg].startswith("channel") or args[arg].startswith("c"):
- print(args[arg].split(" ")[1])
channel = self.bot.get_channel(discord.utils.get(ctx.guild.channels, name=args[arg].split(" ")[1]).id)
- print(channel)
providedchannel = True
if args[arg].startswith("now") or args[arg].startswith("n"):
queueoverride = True
@@ -104,8 +88,11 @@ class Voice(commands.Cog):
ctx.voice_client.resume()
if (self.queue.is_empty and not ctx.voice_client.is_playing()) or queueoverride:
- if earape:
- ctx.voice_client.filters.set_filter(wavelink.Equalizer(wavelink.Filter.highpass(40, 1), wavelink.Filter.peaking(1000, 10)))
+ #not implemented
+ #if earape:
+ #print("earrape")
+ #await ctx.voice_client.set_filter(wavelink.Filter(distortion=wavelink.Distortion(sin_offset=2,sin_scale=2,tan_offset=3)),seek=True)
+
await ctx.voice_client.play(track)
await ctx.respond(f"Now playing: {track.title} by {track.author}\n {track.uri}")
else:
@@ -131,5 +118,4 @@ class Voice(commands.Cog):
await ctx.respond("Skipped")
def setup(bot):
- bot.add_cog(Voice(bot))
-
+ bot.add_cog(Voice(bot))
\ No newline at end of file
diff --git a/py/cogs/voice_old.py b/py/cogs/voice_old.py
deleted file mode 100644
index 9a30172..0000000
--- a/py/cogs/voice_old.py
+++ /dev/null
@@ -1,143 +0,0 @@
-import discord
-from discord.ext import bridge, commands
-from yt_dlp import YoutubeDL
-from bin.storage import Config
-
-class Voice(commands.Cog):
- def __init__(self, bot):
- self.bot = bot
-
- def qhandler(error=None,self=None, ctx=None, st=None):
- print("test")
- queue = (st.read("voice", "queue")).split("/./")
- try:
- queue.pop(0)
- except:
- pass
- st.write("voice", "queue", "/./".join(queue))
- ffmpeg_options = {
- 'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
- 'options': '-vn'
- }
- if len(queue) > 0:
- ctx.voice_client.play(discord.FFmpegPCMAudio(queue[0]), **ffmpeg_options, after=self.qhandler(self, ctx))
- ctx.respond(f"Now playing: {queue[0]}")
-
- @bridge.bridge_command(alises=["j"])
- async def join(self, ctx):
- await ctx.defer()
- if ctx.author.voice is None:
- await ctx.respond("You are not in a voice channel")
- else:
- channel = ctx.author.voice.channel
- await channel.connect()
-
- @bridge.bridge_command(alises=["l"])
- async def leave(self, ctx):
- await ctx.defer()
- st = Config(ctx.guild.id, self.bot.db)
- st.write("voice", "queue", "")
- if ctx.voice_client is None:
- await ctx.respond("I am not in a voice channel")
- else:
- await ctx.voice_client.disconnect()
-
- @bridge.bridge_command(aliases=["p"])
- async def play(self, ctx, *, video: str=""):
- await ctx.defer()
- args = video.split(" ")
- providedchannel = False
- channel = ""
- for arg in range(len(args)-1):
- if args[arg] == "-channel" or args[arg] == "-c":
- channel = self.bot.get_channel(discord.utils.get(ctx.guild.channels, name=args.pop(arg+1)).id)
- print(type(channel))
- print(channel)
- args.pop(arg)
- providedchannel = True
- break
- else:
- channel = ctx.author.voice.channel
-
- link = " ".join(args)
-
- if providedchannel and ctx.author.guild_permissions.administrator == False:
- await ctx.respond("You do not have permission to specify a channel")
- return
-
- if ctx.author.voice is None and channel == "":
- await ctx.respond("You are not in a voice channel, to specify a channel use `play -channel `")
- return
-
- if ctx.voice_client is None:
- await channel.connect()
-
- if link == "" and ctx.voice_client.is_paused():
- ctx.voice_client.resume()
- return
-
- if ctx.voice_client.is_paused():
- ctx.voice_client.resume()
-
- ffmpeg_options = {
- 'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
- 'options': '-vn'
- }
- 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',
- }
-
- with YoutubeDL(ytdl_format_options) as ydl:
- st = Config(ctx.guild.id, self.bot.db)
- if link.startswith("https://"):
- info_dict = ydl.extract_info(link, download=False)
- video_url = info_dict.get("url", None)
- video_id = info_dict.get("id", None)
- video_title = info_dict.get('title', None)
- else:
- info_dict = ydl.extract_info(f"ytsearch:{link}", download=False)["entries"][0]
- video_url = info_dict.get("url", None)
- video_id = info_dict.get("id", None)
- video_title = info_dict.get('title', None)
- if not ctx.voice_client.is_playing():
- ctx.voice_client.play(discord.FFmpegPCMAudio(video_url, **ffmpeg_options), after=self.qhandler(self=self, ctx=ctx, st=st))
- await ctx.respond(f"Now playing: {video_title}")
- else:
- print("Added to queue")
- queue = st.read("voice", "queue").split("/./")
- queue.append(info_dict.get("url",None))
- st.write("voice", "queue", "/./".join(queue))
- await ctx.respond(f"Added to queue: {video_title}")
-
- @bridge.bridge_command(aliases=["stop"])
- async def pause(self, ctx):
- await ctx.defer()
- if ctx.voice_client is None:
- await ctx.respond("I am not in a voice channel")
- else:
- ctx.voice_client.pause()
- await ctx.respond("Paused")
-
- @bridge.bridge_command(alias=["next", "n","s"])
- async def skip(self, ctx):
- await ctx.defer()
- if ctx.voice_client is None:
- await ctx.respond("I am not in a voice channel")
- else:
- ctx.voice_client.stop()
- await ctx.respond("Skipped")
-
-def setup(bot):
- bot.add_cog(Voice(bot))
-
-
\ No newline at end of file