From 75157532970ec649e768667860a9ed901a4ba91f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Dudzi=C5=84ski?= Date: Sun, 16 Nov 2025 22:54:17 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Move=20quality=20literals?= =?UTF-8?q?=20to=20`core`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tiddl/cli/commands/download/downloader.py | 19 ++++--------------- tiddl/cli/config.py | 3 +-- tiddl/core/utils/const.py | 20 ++++++++++++++++++++ 3 files changed, 25 insertions(+), 17 deletions(-) create mode 100644 tiddl/core/utils/const.py diff --git a/tiddl/cli/commands/download/downloader.py b/tiddl/cli/commands/download/downloader.py index d8300a0..3697f7f 100644 --- a/tiddl/cli/commands/download/downloader.py +++ b/tiddl/cli/commands/download/downloader.py @@ -12,11 +12,13 @@ from tiddl.core.api.models import TrackQuality, VideoQuality, Track, Video from tiddl.core.api import TidalAPI, ApiError from tiddl.core.utils import parse_track_stream, parse_video_stream from tiddl.core.utils.ffmpeg import convert_to_mp4, extract_flac -from tiddl.cli.config import ( +from tiddl.core.utils.const import ( TRACK_QUALITY_LITERAL, VIDEO_QUALITY_LITERAL, - VIDEOS_FILTER_LITERAL, + track_qualities, + video_qualities, ) +from tiddl.cli.config import VIDEOS_FILTER_LITERAL from tiddl.cli.utils.download import get_existing_track_filename from .output import RichOutput @@ -25,13 +27,6 @@ log = getLogger(__name__) CHUNK_SIZE = 1024**2 -track_qualities: dict[TRACK_QUALITY_LITERAL, TrackQuality] = { - "low": "LOW", - "normal": "HIGH", - "high": "LOSSLESS", - "max": "HI_RES_LOSSLESS", -} - track_qualities_color: dict[TrackQuality, str] = { "LOW": "[gray]96 kbps", "HIGH": "[gray]320 kbps", @@ -39,12 +34,6 @@ track_qualities_color: dict[TrackQuality, str] = { "HI_RES_LOSSLESS": "[yellow]", } -video_qualities: dict[VIDEO_QUALITY_LITERAL, VideoQuality] = { - "sd": "LOW", - "hd": "MEDIUM", - "fhd": "HIGH", -} - video_qualities_color: dict[VideoQuality, str] = { "LOW": "[gray]360p", "MEDIUM": "[cyan]720p", diff --git a/tiddl/cli/config.py b/tiddl/cli/config.py index a1ad493..c2447a1 100644 --- a/tiddl/cli/config.py +++ b/tiddl/cli/config.py @@ -5,12 +5,11 @@ from tomllib import loads as parse_toml from typing import Literal from tiddl.cli.const import APP_PATH +from tiddl.core.utils.const import TRACK_QUALITY_LITERAL, VIDEO_QUALITY_LITERAL CONFIG_FILENAME = "config.toml" DEFAULT_DOWNLOAD_PATH = Path.home() / "Music" / "tiddl" -TRACK_QUALITY_LITERAL = Literal["low", "normal", "high", "max"] -VIDEO_QUALITY_LITERAL = Literal["sd", "hd", "fhd"] ARTIST_SINGLES_FILTER_LITERAL = Literal["none", "only", "include"] VALID_M3U_RESOURCE_LITERAL = Literal["album", "playlist", "mix"] VALID_RESOURCE_COVER_SAVE_LITERAL = Literal["track", "album", "playlist"] diff --git a/tiddl/core/utils/const.py b/tiddl/core/utils/const.py new file mode 100644 index 0000000..7dc8942 --- /dev/null +++ b/tiddl/core/utils/const.py @@ -0,0 +1,20 @@ +from typing import Literal + +from tiddl.core.api.models import TrackQuality, VideoQuality + + +TRACK_QUALITY_LITERAL = Literal["low", "normal", "high", "max"] +VIDEO_QUALITY_LITERAL = Literal["sd", "hd", "fhd"] + +track_qualities: dict[TRACK_QUALITY_LITERAL, TrackQuality] = { + "low": "LOW", + "normal": "HIGH", + "high": "LOSSLESS", + "max": "HI_RES_LOSSLESS", +} + +video_qualities: dict[VIDEO_QUALITY_LITERAL, VideoQuality] = { + "sd": "LOW", + "hd": "MEDIUM", + "fhd": "HIGH", +}