file structure
This commit is contained in:
@ -1,2 +1,4 @@
|
||||
from .queue import Queue
|
||||
from .entry import Entry
|
||||
from .file import File
|
||||
from .playlist import Playlist
|
||||
|
@ -1,6 +1,24 @@
|
||||
from .playlist import Playlist
|
||||
from .file import File
|
||||
|
||||
|
||||
class Entry:
|
||||
def __init__(self, entry_info) -> None:
|
||||
self.title: str = entry_info["title"]
|
||||
self.artist: str = entry_info["artist"]
|
||||
self.thumbnail: str = entry_info["thumbnail"]
|
||||
self.requester: str = entry_info["requester"]
|
||||
def __init__(
|
||||
self,
|
||||
title: str,
|
||||
artist: str,
|
||||
album: str,
|
||||
thumbnail: str,
|
||||
link: str,
|
||||
requesterId: int,
|
||||
playlist: Playlist | None = None,
|
||||
file: File | None = None,
|
||||
) -> None:
|
||||
self.title = title
|
||||
self.artist = artist
|
||||
self.album = album
|
||||
self.thumbnail = thumbnail
|
||||
self.link = link
|
||||
self.requester = requesterId
|
||||
self.playlist = playlist
|
||||
self.file = file
|
||||
|
5
entity/file.py
Normal file
5
entity/file.py
Normal file
@ -0,0 +1,5 @@
|
||||
class File:
|
||||
def __init__(self, name: str, path: str, size: int) -> None:
|
||||
self.name = name
|
||||
self.path = path
|
||||
self.size = size
|
4
entity/playlist.py
Normal file
4
entity/playlist.py
Normal file
@ -0,0 +1,4 @@
|
||||
class Playlist:
|
||||
def __init__(self, title: str, url: str) -> None:
|
||||
self.title = title
|
||||
self.url = url
|
@ -1,23 +1,43 @@
|
||||
from entry import Entry
|
||||
from .entry import Entry
|
||||
from .playlist import Playlist
|
||||
|
||||
|
||||
class Queue:
|
||||
def __init__(self) -> None:
|
||||
self._queue: list[Entry] = []
|
||||
self._entries: list[Entry] = []
|
||||
self.cursor = 0
|
||||
|
||||
def append(self, entry: Entry) -> None:
|
||||
self._queue.append(entry)
|
||||
def add(self, entry: Entry) -> None:
|
||||
self._entries.append(entry)
|
||||
|
||||
def remove(self, index: int) -> Entry | None:
|
||||
if 0 < index < len(self._queue):
|
||||
return self._queue.pop()
|
||||
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 0 < frm < len(self._queue) and 0 < to < len(self._queue) and frm != to:
|
||||
self._queue.insert(to, self._queue.pop(frm))
|
||||
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 index < 0 or index > len(self._queue):
|
||||
return None
|
||||
return self._queue[index]
|
||||
if not 0 < index < len(self._entries):
|
||||
return
|
||||
|
||||
return self._entries[index]
|
||||
|
||||
def __len__(self) -> int:
|
||||
return len(self._entries)
|
||||
|
Reference in New Issue
Block a user