diff --git a/zotify/config.py b/zotify/config.py index f7b25ac..b5521eb 100644 --- a/zotify/config.py +++ b/zotify/config.py @@ -325,35 +325,30 @@ class Config: @classmethod def get_output(cls, mode: str) -> str: + # Custom output overrides all defaults v = cls.get(OUTPUT) if v: return v + + # Select base template by mode if mode == 'playlist': - if cls.get_split_album_discs(): - split = PurePath(OUTPUT_DEFAULT_PLAYLIST).parent - return PurePath(split).joinpath('Disc {disc_number}').joinpath(split) - return OUTPUT_DEFAULT_PLAYLIST - if mode == 'extplaylist': - if cls.get_split_album_discs(): - split = PurePath(OUTPUT_DEFAULT_PLAYLIST_EXT).parent - return PurePath(split).joinpath('Disc {disc_number}').joinpath(split) - return OUTPUT_DEFAULT_PLAYLIST_EXT - if mode == 'liked': - if cls.get_split_album_discs(): - split = PurePath(OUTPUT_DEFAULT_LIKED_SONGS).parent - return PurePath(split).joinpath('Disc {disc_number}').joinpath(split) - return OUTPUT_DEFAULT_LIKED_SONGS - if mode == 'single': - if cls.get_split_album_discs(): - split = PurePath(OUTPUT_DEFAULT_SINGLE).parent - return PurePath(split).joinpath('Disc {disc_number}').joinpath(split) - return OUTPUT_DEFAULT_SINGLE - if mode == 'album': - if cls.get_split_album_discs(): - split = PurePath(OUTPUT_DEFAULT_ALBUM).parent - return PurePath(split).joinpath('Disc {disc_number}').joinpath(split) - return OUTPUT_DEFAULT_ALBUM - raise ValueError() + v = OUTPUT_DEFAULT_PLAYLIST + elif mode == 'extplaylist': + v = OUTPUT_DEFAULT_PLAYLIST_EXT + elif mode == 'liked': + v = OUTPUT_DEFAULT_LIKED_SONGS + elif mode == 'single': + v = OUTPUT_DEFAULT_SINGLE + elif mode == 'album': + v = OUTPUT_DEFAULT_ALBUM + else: + raise ValueError() + + if cls.get_split_album_discs() and mode == 'album': + base = PurePath(v) + return str(base.parent / 'Disc {disc_number}' / base.name) + + return v @classmethod def get_retry_attempts(cls) -> int: