Stability update

This commit is contained in:
Rafael Vargas
2022-07-25 09:49:04 -03:00
parent f27dc1de93
commit 140c1640d9
16 changed files with 41 additions and 20 deletions

View File

@@ -22,8 +22,8 @@ class ClearHandler(AbstractHandler):
playlist.clear()
processLock.release()
processLock.release()
return HandlerResponse(self.ctx)
else:
processManager.resetProcess(self.guild, self.ctx)
embed = self.embeds.PLAYER_RESTARTED()
return HandlerResponse(self.ctx, embed)
return HandlerResponse(self.ctx)

View File

@@ -27,6 +27,7 @@ class LoopHandler(AbstractHandler):
if args == '' or args is None:
playlist.loop_all()
embed = self.embeds.LOOP_ALL_ACTIVATED()
processLock.release()
return HandlerResponse(self.ctx, embed)
args = args.lower()
@@ -50,7 +51,7 @@ class LoopHandler(AbstractHandler):
embed = self.embeds.BAD_LOOP_USE()
processLock.release()
return HandlerResponse(self.ctx, embed)
return HandlerResponse(self.ctx, embed, error)
else:
processManager.resetProcess(self.guild, self.ctx)
embed = self.embeds.PLAYER_RESTARTED()

View File

@@ -19,4 +19,7 @@ class PauseHandler(AbstractHandler):
queue = processInfo.getQueue()
queue.put(command)
return HandlerResponse(self.ctx)
return HandlerResponse(self.ctx)
else:
embed = self.embeds.NOT_PLAYING()
return HandlerResponse(self.ctx, embed)

View File

@@ -113,13 +113,20 @@ class PlayHandler(AbstractHandler):
tasks.append(task)
# In the original order, await for the task and then if successfully downloaded add in the playlist
processManager = ProcessManager()
for index, task in enumerate(tasks):
await task
song = songs[index]
if not song.problematic: # If downloaded add to the playlist and send play command
with processInfo.getLock():
processInfo = processManager.getPlayerInfo(self.guild, self.ctx)
processLock = processInfo.getLock()
acquired = processLock.acquire(timeout=self.config.ACQUIRE_LOCK_TIMEOUT)
if acquired:
playlist.add_song(song)
queue.put(playCommand)
processLock.release()
else:
processManager.resetProcess(self.guild, self.ctx)
def __isUserConnected(self) -> bool:
if self.ctx.author.voice:

View File

@@ -44,6 +44,7 @@ class PrevHandler(AbstractHandler):
prevCommand = VCommands(VCommandsType.PREV, self.ctx.author.voice.channel.id)
queue = processInfo.getQueue()
queue.put(prevCommand)
return HandlerResponse(self.ctx)
def __user_connected(self) -> bool:
if self.ctx.author.voice:

View File

@@ -1,4 +1,3 @@
import asyncio
from discord.ext.commands import Context
from discord import Client
from Handlers.AbstractHandler import AbstractHandler
@@ -30,16 +29,16 @@ class QueueHandler(AbstractHandler):
if playlist.isLoopingOne():
song = playlist.getCurrentSong()
embed = self.embeds.ONE_SONG_LOOPING(song.info)
processLock.release() # Release the Lock
return HandlerResponse(self.ctx, embed)
songs_preload = playlist.getSongsToPreload()
allSongs = playlist.getSongs()
if len(songs_preload) == 0:
embed = self.embeds.EMPTY_QUEUE()
processLock.release() # Release the Lock
return HandlerResponse(self.ctx, embed)
asyncio.create_task(self.__down.preload(songs_preload))
if playlist.isLoopingAll():
title = self.messages.ALL_SONGS_LOOPING
else:

View File

@@ -19,4 +19,7 @@ class ResetHandler(AbstractHandler):
queue = processInfo.getQueue()
queue.put(command)
return HandlerResponse(self.ctx)
return HandlerResponse(self.ctx)
else:
embed = self.embeds.NOT_PLAYING()
return HandlerResponse(self.ctx, embed)

View File

@@ -19,4 +19,7 @@ class ResumeHandler(AbstractHandler):
queue = processInfo.getQueue()
queue.put(command)
return HandlerResponse(self.ctx)
return HandlerResponse(self.ctx)
else:
embed = self.embeds.NOT_PLAYING()
return HandlerResponse(self.ctx, embed)

View File

@@ -25,4 +25,8 @@ class SkipHandler(AbstractHandler):
command = VCommands(VCommandsType.SKIP, None)
queue = processInfo.getQueue()
queue.put(command)
return HandlerResponse(self.ctx)
return HandlerResponse(self.ctx)
else:
embed = self.embeds.NOT_PLAYING()
return HandlerResponse(self.ctx, embed)

View File

@@ -20,3 +20,6 @@ class StopHandler(AbstractHandler):
queue.put(command)
return HandlerResponse(self.ctx)
else:
embed = self.embeds.NOT_PLAYING()
return HandlerResponse(self.ctx, embed)