from .entry import Entry class Queue: def __init__(self) -> None: self.entries: list[Entry] = [] self.playing = False self.cursor = 0 self.seek = 0 def add(self, entries: list[Entry]) -> None: for entry in entries: self.entries.append(entry) def remove(self, index: int, recursive: bool) -> None: if not 0 <= index < len(self.entries): return # if recursive and self[index].playlist is not None: # firstEntry = "" # else: self.entries.pop() def move(self, frm: int, to: int) -> None: if ( not 0 <= frm < len(self.entries) or not 0 <= to < len(self.entries) or frm == to ): return None self.entries.insert(to, self.entries.pop(frm)) def moveCursor(self, position: int) -> None: if not 0 <= position <= len(self.entries): return None self.cursor = position def incrementCursor(self) -> None: self.moveCursor(self.cursor + 1) def nowPlaying(self) -> Entry | None: if not 0 <= self.cursor < len(self.entries): return None return self.entries[self.cursor] def startPlaying(self) -> None: self.playing = True def stopPlaying(self) -> None: self.playing = False def __getitem__(self, index: int) -> Entry | None: if not 0 <= index < len(self.entries): return None return self.entries[index] def __len__(self) -> int: return len(self.entries)