first commit

This commit is contained in:
cool.gitter.not.me.again.duh
2025-05-31 15:51:18 -06:00
commit 089cb3dc5a
34 changed files with 9012 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
#!/usr/bin/python3
from deezspot.models.smart import Smart
from deezspot.models.track import Track
from deezspot.models.album import Album
from deezspot.models.playlist import Playlist
from deezspot.models.preferences import Preferences
from deezspot.models.episode import Episode

20
deezspot/models/album.py Normal file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/python3
from deezspot.models.track import Track
class Album:
def __init__(self, ids: int) -> None:
self.tracks: list[Track] = []
self.zip_path = None
self.image = None
self.album_quality = None
self.md5_image = None
self.ids = ids
self.nb_tracks = None
self.album_name = None
self.upc = None
self.tags = None
self.__set_album_md5()
def __set_album_md5(self):
self.album_md5 = f"album/{self.ids}"

View File

@@ -0,0 +1,34 @@
#!/usr/bin/python3
class Episode:
def __init__(
self,
tags: dict,
episode_path: str,
file_format: str,
quality: str,
link: str,
ids: int
) -> None:
self.tags = tags
self.__set_tags()
self.episode_name = f"{self.name} - {self.show}"
self.episode_path = episode_path
self.file_format = file_format
self.quality = quality
self.link = link
self.ids = ids
self.md5_image = None
self.success = True
self.__set_episode_md5()
def __set_tags(self):
for tag, value in self.tags.items():
setattr(self, tag, value)
def __set_episode_md5(self):
self.episode_md5 = f"episode/{self.ids}"
def set_fallback_ids(self, fallback_ids):
self.fallback_ids = fallback_ids
self.fallback_episode_md5 = f"episode/{self.fallback_ids}"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/python3
from deezspot.models.track import Track
class Playlist:
def __init__(self) -> None:
self.tracks: list[Track] = []
self.zip_path = None

View File

@@ -0,0 +1,22 @@
#!/usr/bin/python3
class Preferences:
def __init__(self) -> None:
self.link = None
self.song_metadata: dict = None
self.quality_download = None
self.output_dir = None
self.ids = None
self.json_data = None
self.recursive_quality = None
self.recursive_download = None
self.not_interface = None
self.method_save = None
self.make_zip = None
self.real_time_dl = None ,
self.custom_dir_format = None,
self.custom_track_format = None,
self.pad_tracks = True # Default to padded track numbers (01, 02, etc.)
self.initial_retry_delay = 30 # Default initial retry delay in seconds
self.retry_delay_increase = 30 # Default increase in delay between retries in seconds
self.max_retries = 5 # Default maximum number of retries per track

13
deezspot/models/smart.py Normal file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/python3
from deezspot.models.track import Track
from deezspot.models.album import Album
from deezspot.models.playlist import Playlist
class Smart:
def __init__(self) -> None:
self.track: Track = None
self.album: Album = None
self.playlist: Playlist = None
self.type = None
self.source = None

37
deezspot/models/track.py Normal file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/python3
class Track:
def __init__(
self,
tags: dict,
song_path: str,
file_format: str,
quality: str,
link: str,
ids: int
) -> None:
self.tags = tags
self.__set_tags()
self.song_name = f"{self.music} - {self.artist}"
self.song_path = song_path
self.file_format = file_format
self.quality = quality
self.link = link
self.ids = ids
self.md5_image = None
self.success = True
self.__set_track_md5()
def __set_tags(self):
for tag, value in self.tags.items():
setattr(
self, tag, value
)
def __set_track_md5(self):
self.track_md5 = f"track/{self.ids}"
def set_fallback_ids(self, fallback_ids):
self.fallback_ids = fallback_ids
self.fallback_track_md5 = f"track/{self.fallback_ids}"