Spaces:
Runtime error
Runtime error
add queue command
Browse files
app.py
CHANGED
@@ -36,6 +36,7 @@ class MusicBot:
|
|
36 |
'no_warnings': True,
|
37 |
'extract_flat': 'in_playlist'
|
38 |
}
|
|
|
39 |
|
40 |
async def join_voice(self, ctx):
|
41 |
if ctx.author.voice:
|
@@ -57,6 +58,7 @@ class MusicBot:
|
|
57 |
info = ydl.extract_info(url, download=False)
|
58 |
audio_url = info['url']
|
59 |
title = info.get('title', 'Unknown title')
|
|
|
60 |
|
61 |
# Create FFmpeg audio source
|
62 |
ffmpeg_options = {
|
@@ -67,6 +69,7 @@ class MusicBot:
|
|
67 |
|
68 |
def after_playing(error):
|
69 |
self.is_playing = False
|
|
|
70 |
if error:
|
71 |
print(f"Playback error: {error}")
|
72 |
asyncio.run_coroutine_threadsafe(self.play_next(ctx), bot.loop)
|
@@ -138,6 +141,31 @@ async def leave(interaction: discord.Interaction):
|
|
138 |
else:
|
139 |
await interaction.response.send_message('Bot is not in a voice channel!')
|
140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
def run_discord_bot():
|
142 |
bot.run(os.getenv('DISCORD_TOKEN'))
|
143 |
|
|
|
36 |
'no_warnings': True,
|
37 |
'extract_flat': 'in_playlist'
|
38 |
}
|
39 |
+
self.currently_playing = None
|
40 |
|
41 |
async def join_voice(self, ctx):
|
42 |
if ctx.author.voice:
|
|
|
58 |
info = ydl.extract_info(url, download=False)
|
59 |
audio_url = info['url']
|
60 |
title = info.get('title', 'Unknown title')
|
61 |
+
self.currently_playing = title
|
62 |
|
63 |
# Create FFmpeg audio source
|
64 |
ffmpeg_options = {
|
|
|
69 |
|
70 |
def after_playing(error):
|
71 |
self.is_playing = False
|
72 |
+
self.currently_playing = None
|
73 |
if error:
|
74 |
print(f"Playback error: {error}")
|
75 |
asyncio.run_coroutine_threadsafe(self.play_next(ctx), bot.loop)
|
|
|
141 |
else:
|
142 |
await interaction.response.send_message('Bot is not in a voice channel!')
|
143 |
|
144 |
+
@bot.tree.command(name="queue", description="Show the current music queue")
|
145 |
+
async def queue(interaction: discord.Interaction):
|
146 |
+
await interaction.response.defer()
|
147 |
+
|
148 |
+
if not music_bot.is_playing and not music_bot.queue:
|
149 |
+
await interaction.followup.send("No songs in the queue!")
|
150 |
+
return
|
151 |
+
|
152 |
+
queue_list = []
|
153 |
+
if music_bot.currently_playing:
|
154 |
+
queue_list.append(f"Currently playing: {music_bot.currently_playing}")
|
155 |
+
|
156 |
+
if music_bot.queue:
|
157 |
+
with yt_dlp.YoutubeDL(music_bot.ydl_opts) as ydl:
|
158 |
+
for i, url in enumerate(music_bot.queue, 1):
|
159 |
+
try:
|
160 |
+
info = ydl.extract_info(url, download=False)
|
161 |
+
title = info.get('title', 'Unknown title')
|
162 |
+
queue_list.append(f"{i}. {title}")
|
163 |
+
except:
|
164 |
+
queue_list.append(f"{i}. {url}")
|
165 |
+
|
166 |
+
queue_text = "\n".join(queue_list)
|
167 |
+
await interaction.followup.send(f"**Music Queue:**\n{queue_text}")
|
168 |
+
|
169 |
def run_discord_bot():
|
170 |
bot.run(os.getenv('DISCORD_TOKEN'))
|
171 |
|