file structure

This commit is contained in:
2023-04-28 01:19:18 +02:00
parent 11c95e93f2
commit 71ff713417
24 changed files with 241 additions and 37 deletions

View File

@ -1,2 +1,4 @@
from .queue import Queue
from .entry import Entry
from .file import File
from .playlist import Playlist

View File

@ -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
View 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
View File

@ -0,0 +1,4 @@
class Playlist:
def __init__(self, title: str, url: str) -> None:
self.title = title
self.url = url

View File

@ -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)