diff --git a/bot.py b/bot.py index 1d135e7..c25522f 100644 --- a/bot.py +++ b/bot.py @@ -22,6 +22,7 @@ handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s:%(name)s: %(me logger.addHandler(handler) queue = [] +user_queue = [] shuffle = False load_dotenv() options = Options() @@ -75,8 +76,12 @@ def play_video(videourl): ) async def play(inter: disnake.AppCmdInter, link: str): await inter.response.defer(ephemeral=True) + if user_queue.count(inter.user.id) >= (int(os.getenv("MAX_QUEUE"))): + await inter.edit_original_response(f"You have reached the queue limit of {os.getenv('MAX_QUEUE')}, try again after one of your videos has played.") + return if urlparse(link).netloc == 'youtube.com' or urlparse(link).netloc == 'www.youtube.com' or urlparse(link).netloc == 'youtu.be': queue.append(link) + user_queue.append(inter.user.id) await inter.edit_original_response(f"added to queue!") global queuetask if queuetask.done(): @@ -199,6 +204,7 @@ async def skip(inter: disnake.AppCmdInter): await queuetask except asyncio.CancelledError: queue.pop(0) + user_queue.pop(0) if len(queue) < 1: driver.get(f"file://{os.getcwd()}/waitingforvideo.png") driver.fullscreen_window() @@ -217,6 +223,7 @@ async def remove(inter: disnake.AppCmdInter, toremove: int): return else: queue.pop(toremove) + user_queue.pop(toremove) await inter.edit_original_response("removed!") async def queuehandler(): @@ -224,11 +231,17 @@ async def queuehandler(): global queue while queue: if shuffle: + seed = time.time() + random.seed(seed) random.shuffle(queue) + random.seed(seed) + random.shuffle(user_queue) print(queue) + print(user_queue) driver.maximize_window() await loop.run_in_executor(None, play_video, queue[0]) queue.pop(0) + user_queue.pop(0) driver.get(f"file://{os.getcwd()}/waitingforvideo.png") driver.fullscreen_window()