[fix]: Fix queues and embed messages
This commit is contained in:
parent
5c064b78ea
commit
ad6e872aa2
@ -32,14 +32,7 @@ class Music(commands.Cog, name="Музыка"):
|
|||||||
audio_source = discord.FFmpegPCMAudio(URL, **FFMPEG_OPTIONS)
|
audio_source = discord.FFmpegPCMAudio(URL, **FFMPEG_OPTIONS)
|
||||||
inter.guild.voice_client.play(audio_source, after=lambda error: self.next_(inter, error))
|
inter.guild.voice_client.play(audio_source, after=lambda error: self.next_(inter, error))
|
||||||
|
|
||||||
try:
|
asyncio.run_coroutine_threadsafe(self.send_embed_(inter, info, url), self.bot.loop)
|
||||||
asyncio.create_task(self.send_embed_(inter, info, url))
|
|
||||||
except:
|
|
||||||
loop = asyncio.new_event_loop()
|
|
||||||
asyncio.set_event_loop(loop)
|
|
||||||
loop.set_debug(True)
|
|
||||||
loop.run_until_complete(self.send_embed_(inter, info, url))
|
|
||||||
loop.stop()
|
|
||||||
|
|
||||||
async def send_embed_(self, inter, info, url):
|
async def send_embed_(self, inter, info, url):
|
||||||
embed = discord.Embed (
|
embed = discord.Embed (
|
||||||
@ -52,18 +45,18 @@ class Music(commands.Cog, name="Музыка"):
|
|||||||
url=info["uploader_url"]
|
url=info["uploader_url"]
|
||||||
)
|
)
|
||||||
embed.set_thumbnail( url=info["thumbnail"] )
|
embed.set_thumbnail( url=info["thumbnail"] )
|
||||||
await inter.response.send_message(embed=embed)
|
try:
|
||||||
|
await inter.response.send_message(embed=embed)
|
||||||
|
except:
|
||||||
|
await inter.channel.send(embed=embed)
|
||||||
|
|
||||||
async def end_of_query_(self, inter):
|
async def end_of_query_(self, inter):
|
||||||
await inter.response.send_message("В очереди больше не осталось песен")
|
await inter.response.send_message("В очереди больше не осталось песен")
|
||||||
|
|
||||||
|
|
||||||
@app_commands.command(description="Plays music from popular platforms")
|
@app_commands.command(description="Plays music from popular platforms")
|
||||||
@app_commands.describe(
|
@app_commands.describe(url="URL from Youtube/RuTube and other platforms")
|
||||||
url="URL from Youtube/RuTube and other platforms",
|
|
||||||
query="Add music to query"
|
|
||||||
)
|
|
||||||
async def play(self, inter, url: str):
|
async def play(self, inter, url: str):
|
||||||
|
logger.debug(asyncio.get_running_loop())
|
||||||
channel = inter.user.voice.channel
|
channel = inter.user.voice.channel
|
||||||
|
|
||||||
if inter.user.voice is None:
|
if inter.user.voice is None:
|
||||||
@ -84,19 +77,18 @@ class Music(commands.Cog, name="Музыка"):
|
|||||||
if str(channel.id) not in self.query.keys():
|
if str(channel.id) not in self.query.keys():
|
||||||
self.query[str(channel.id)] = {
|
self.query[str(channel.id)] = {
|
||||||
"requester_id": inter.user.id,
|
"requester_id": inter.user.id,
|
||||||
"music_pos": -1,
|
"music_pos": 0,
|
||||||
"query": [],
|
"query": [],
|
||||||
"context": inter
|
"context": inter
|
||||||
}
|
}
|
||||||
|
self.query[str(channel.id)]["query"].append(url)
|
||||||
|
|
||||||
if client.is_playing() or client.is_paused():
|
if client.is_playing() or client.is_paused():
|
||||||
if query:
|
logger.debug("\n".join(self.query[str(channel.id)]['query']))
|
||||||
self.query[str(channel.id)]["query"].append(url)
|
await inter.response.send_message("Добавлена новая песня в очередь")
|
||||||
logger.debug("\n".join(self.query[str(channel.id)]['query']))
|
return
|
||||||
await inter.response.send_message("Добавлена новая песня в очередь")
|
else:
|
||||||
return
|
inter.guild.voice_client.stop()
|
||||||
else:
|
|
||||||
inter.guild.voice_client.stop()
|
|
||||||
|
|
||||||
self.play_(inter, url)
|
self.play_(inter, url)
|
||||||
|
|
||||||
@ -125,18 +117,16 @@ class Music(commands.Cog, name="Музыка"):
|
|||||||
self.next_(inter)
|
self.next_(inter)
|
||||||
|
|
||||||
def next_(self, inter, error=None):
|
def next_(self, inter, error=None):
|
||||||
|
logger.debug("\n....".join(["Query:"]+self.query[str(inter.user.voice.channel.id)]['query']))
|
||||||
|
|
||||||
inter.guild.voice_client.stop()
|
inter.guild.voice_client.stop()
|
||||||
query = self.query[str(inter.user.voice.channel.id)]
|
query = self.query[str(inter.user.voice.channel.id)]
|
||||||
query["music_pos"] = query["music_pos"] + 1
|
query["music_pos"] = query["music_pos"] + 1
|
||||||
logger.debug((len(query["query"]), query["music_pos"]))
|
logger.debug((len(query["query"]), query["music_pos"]))
|
||||||
if len(query["query"]) < query["music_pos"]:
|
if len(query["query"]) == query["music_pos"]:
|
||||||
try:
|
asyncio.run_coroutine_threadsafe(self.end_of_query_(inter), self.bot.loop)
|
||||||
asyncio.run(self.end_of_query_(inter))
|
|
||||||
# asyncio.create_task(self.end_of_query_(inter))
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return
|
|
||||||
|
|
||||||
|
logger.debug([query["music_pos"]])
|
||||||
url = query["query"][query["music_pos"]]
|
url = query["query"][query["music_pos"]]
|
||||||
self.play_(inter, url)
|
self.play_(inter, url)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user