refactor(youtubedl): use collections.deque for player queue

This commit is contained in:
Ryan 2025-01-03 20:01:14 -05:00
parent 1c7b8797bc
commit f08b9f0766
Signed by: ErrorNoInternet
GPG Key ID: 2486BFB7B1E6A4A3

View File

@ -1,4 +1,5 @@
import asyncio import asyncio
import collections
from typing import Any, Optional from typing import Any, Optional
import disnake import disnake
@ -51,12 +52,11 @@ class YTDLSource(disnake.PCMVolumeTransformer):
class QueuedPlayer: class QueuedPlayer:
def __init__(self): def __init__(self):
self.queue = [] self.queue = collections.deque()
self.current = None self.current = None
def queue_pop(self): def queue_pop(self):
popped = self.queue[0] popped = self.queue.popleft()
del self.queue[0]
self.current = popped self.current = popped
return popped return popped
@ -64,7 +64,7 @@ class QueuedPlayer:
self.queue.append(item) self.queue.append(item)
def queue_add_front(self, item): def queue_add_front(self, item):
self.queue.insert(0, item) self.queue.appendleft(item)
def __repr__(self): def __repr__(self):
return f"<QueuedPlayer current={self.current} queue={self.queue}>" return f"<QueuedPlayer current={self.current} queue={self.queue}>"