Files
2024-05-26 13:25:28 +08:00

64 lines
1.4 KiB
Python

import Music
import pickle
class MusicQueue():
queue = []
def __init__(self):
self.queue = []
def push(self, element: Music):
self.queue.append(element)
def pop(self):
self.queue.pop(0)
def front(self) -> Music:
return self.queue[0]
def clear(self):
self.queue = []
def elevate(self, target: Music):
# elevate target to 1st place
self.queue.remove(target)
self.queue.insert(0, target)
def find(self, target: Music) -> Music or None:
for i in self.queue:
if i == target:
return i
return None
def count(self, target: Music):
count = 0
for i in self.queue:
if i == target:
count += 1
return count
def findAndElevate(self, target: Music):
target = self.find(target)
if target is not None:
self.elevate(target)
def delete(self, target: Music):
target = self.find(target)
if target is not None:
self.queue.remove(target)
def size(self):
return len(self.queue)
def dict(self):
return [i.dict() for i in self.queue]
def __str__(self):
return str(self.queue)
def dump(self):
return pickle.dumps(self.queue)
def load(self, data: bytes):
self.queue = pickle.loads(data)