44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
from .entry import Entry
|
|
from .playlist import Playlist
|
|
|
|
|
|
class Queue:
|
|
def __init__(self) -> None:
|
|
self._entries: list[Entry] = []
|
|
self.cursor = 0
|
|
|
|
def add(self, entry: Entry) -> None:
|
|
self._entries.append(entry)
|
|
|
|
def addPlalist(self, playlist: Playlist) -> None:
|
|
for entry in playlist:
|
|
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:
|
|
# first_entry = ""
|
|
# 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
|
|
|
|
self._entries.insert(to, self._entries.pop(frm))
|
|
|
|
def __getitem__(self, index: int) -> Entry | None:
|
|
if not 0 < index < len(self._entries):
|
|
return
|
|
|
|
return self._entries[index]
|
|
|
|
def __len__(self) -> int:
|
|
return len(self._entries)
|