add singles_filter to config (#105)

This commit is contained in:
Oskar Dudziński
2025-03-03 21:05:42 +01:00
committed by GitHub
parent b385722946
commit b6607ce64d
3 changed files with 7 additions and 6 deletions
+4 -5
View File
@@ -17,7 +17,7 @@ from tiddl.download import parseTrackStream, parseVideoStream
from tiddl.exceptions import ApiError, AuthError
from tiddl.metadata import Cover, addMetadata, addVideoMetadata
from tiddl.models.api import AlbumItemsCredits
from tiddl.models.constants import ARG_TO_QUALITY, TrackArg
from tiddl.models.constants import ARG_TO_QUALITY, TrackArg, SinglesFilter
from tiddl.models.resource import Track, Video, Album
from tiddl.utils import (
TidalResource,
@@ -26,7 +26,7 @@ from tiddl.utils import (
trackExists,
)
from typing import List, Literal, Union
from typing import List, Union
from .fav import FavGroup
from .file import FileGroup
@@ -35,8 +35,6 @@ from .url import UrlGroup
from ..ctx import Context, passContext
SinglesFilter = Literal["none", "only", "include"]
@click.command("download")
@click.option(
@@ -81,7 +79,6 @@ SinglesFilter = Literal["none", "only", "include"]
"-s",
"SINGLES_FILTER",
type=click.Choice(SinglesFilter.__args__),
default="none",
help="Defines how to treat artist EPs and singles, used while downloading artist.",
)
@passContext
@@ -96,6 +93,8 @@ def DownloadCommand(
):
"""Download resources"""
SINGLES_FILTER = SINGLES_FILTER or ctx.obj.config.download.singles_filter
# TODO: pretty print
logging.debug(
(QUALITY, TEMPLATE, PATH, THREADS_COUNT, DO_NOT_SKIP, SINGLES_FILTER)
+2 -1
View File
@@ -3,7 +3,7 @@
from pydantic import BaseModel
from pathlib import Path
from tiddl.models.constants import TrackArg
from tiddl.models.constants import TrackArg, SinglesFilter
HOME_PATH = Path.home()
CONFIG_PATH = HOME_PATH / "tiddl.json"
@@ -21,6 +21,7 @@ class DownloadConfig(BaseModel):
quality: TrackArg = "high"
path: Path = Path.home() / "Music" / "Tiddl"
threads: int = 4
singles_filter: SinglesFilter = "none"
class AuthConfig(BaseModel):
+1
View File
@@ -2,6 +2,7 @@ from typing import Literal
TrackQuality = Literal["LOW", "HIGH", "LOSSLESS", "HI_RES_LOSSLESS"]
TrackArg = Literal["low", "normal", "high", "master"]
SinglesFilter = Literal["none", "only", "include"]
ARG_TO_QUALITY: dict[TrackArg, TrackQuality] = {
"low": "LOW",