From 42b580277859a6a6b9b6b05546d76d46a3809ba3 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Thu, 29 Sep 2022 00:10:24 -0700 Subject: [PATCH] wiop --- src/ytdl_sub/prebuilt_presets/__init__.py | 11 +++++----- .../tv_show/download_strategy.yaml | 16 +++++++-------- .../prebuilt_presets/tv_show/episode.yaml | 6 ++++++ .../tv_show/media_players.yaml | 8 ++++++-- src/ytdl_sub/prebuilt_presets/tv_show/out.py | 11 +++------- .../prebuilt_presets/test_prebuilt_presets.py | 20 +++++++++---------- 6 files changed, 39 insertions(+), 33 deletions(-) diff --git a/src/ytdl_sub/prebuilt_presets/__init__.py b/src/ytdl_sub/prebuilt_presets/__init__.py index 70440aec..9503d275 100644 --- a/src/ytdl_sub/prebuilt_presets/__init__.py +++ b/src/ytdl_sub/prebuilt_presets/__init__.py @@ -1,25 +1,26 @@ +import pathlib from pathlib import Path -from typing import Any, Dict +from typing import Any +from typing import Dict import mergedeep from ytdl_sub.prebuilt_presets.tv_show.out import PrebuiltKodiTVShowPresets from ytdl_sub.utils.yaml import load_yaml -import pathlib - def _merge_presets() -> Dict[str, Any]: merged_configs: Dict[str, Any] = {} # Get all presets from the loose YAML files for file in pathlib.Path(__file__).parent.resolve().rglob("*"): - if file.is_file() and file.name.endswith('yaml'): + if file.is_file() and file.name.endswith("yaml"): mergedeep.merge(merged_configs, load_yaml(file)) # Get all presets from published preset configs mergedeep.merge(merged_configs, *PrebuiltKodiTVShowPresets.get_presets()) - return merged_configs['presets'] + return merged_configs["presets"] + PREBUILT_PRESETS: Dict[str, Any] = _merge_presets() diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/download_strategy.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/download_strategy.yaml index 27310fc5..2008fdd6 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/download_strategy.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/download_strategy.yaml @@ -7,7 +7,7 @@ presets: download_strategy: "source" url: "{url}" playlist_thumbnails: - - name: "{poster_file_name}" + - name: "{tv_show_poster_file_name}" uid: "latest_entry" #################################################################################################### @@ -17,9 +17,9 @@ presets: download_strategy: "source" url: "{url}" playlist_thumbnails: - - name: "{poster_file_name}" + - name: "{tv_show_poster_file_name}" uid: "avatar_uncropped" - - name: "{fanart_file_name}" + - name: "{tv_show_fanart_file_name}" uid: "banner_uncropped" #################################################################################################### @@ -40,7 +40,7 @@ presets: collection_season_number: "1" collection_season_number_padded: "01" playlist_thumbnails: - - name: "{season_poster_name}" + - name: "{season_poster_file_name}" uid: "latest_entry" output_directory_nfo_tags: @@ -58,7 +58,7 @@ presets: collection_season_number: "2" collection_season_number_padded: "02" playlist_thumbnails: - - name: "{season_poster_name}" + - name: "{season_poster_file_name}" uid: "latest_entry" output_directory_nfo_tags: @@ -76,7 +76,7 @@ presets: collection_season_number: "3" collection_season_number_padded: "03" playlist_thumbnails: - - name: "{season_poster_name}" + - name: "{season_poster_file_name}" uid: "latest_entry" output_directory_nfo_tags: @@ -94,7 +94,7 @@ presets: collection_season_number: "4" collection_season_number_padded: "04" playlist_thumbnails: - - name: "{season_poster_name}" + - name: "{season_poster_file_name}" uid: "latest_entry" output_directory_nfo_tags: @@ -112,7 +112,7 @@ presets: collection_season_number: "5" collection_season_number_padded: "05" playlist_thumbnails: - - name: "{season_poster_name}" + - name: "{season_poster_file_name}" uid: "latest_entry" output_directory_nfo_tags: diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml index 97df1632..6c508ae8 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml @@ -38,6 +38,7 @@ presets: episode-by-month-day: preset: - "season-by-year" + - "episode-base" overrides: episode_number: "{upload_month}{upload_day_padded}" episode_number_padded: "{upload_month_padded}{upload_day_padded}" @@ -45,16 +46,21 @@ presets: episode-by-month-day-reversed: preset: - "season-by-year" + - "episode-base" overrides: episode_number: "{upload_day_of_year_reversed}" episode_number_padded: "{upload_day_of_year_reversed_padded}" episode-by-year-month-day: + preset: + - "episode-base" overrides: episode_number: "{upload_year_truncated}{upload_month_padded}{upload_day_padded}" episode_number_padded: "{episode_number}" episode-by-year-month-day-reversed: + preset: + - "episode-base" overrides: episode_number: "{upload_year_truncated_reversed}{upload_month_reversed_padded}{upload_day_reversed_padded}" episode_number_padded: "{episode_number}" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/media_players.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/media_players.yaml index c4be88c9..b2915776 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/media_players.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/media_players.yaml @@ -2,11 +2,15 @@ presets: plex-tv-show: overrides: - season_poster_name: "Season{season_number_padded}.jpg" + tv_show_poster_file_name: "show.jpg" + tv_show_fanart_file_name: "fanart.jpg" + season_poster_file_name: "Season{season_number_padded}.jpg" jellyfin-tv-show: overrides: - season_poster_name: "season{season_number_padded}-poster.jpg" + tv_show_poster_file_name: "poster.jpg" + tv_show_fanart_file_name: "fanart.jpg" + season_poster_file_name: "season{season_number_padded}-poster.jpg" nfo_tags: nfo_name: "{episode_file_path}.nfo" diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/out.py b/src/ytdl_sub/prebuilt_presets/tv_show/out.py index 689e622d..f291a330 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/out.py +++ b/src/ytdl_sub/prebuilt_presets/tv_show/out.py @@ -1,4 +1,5 @@ -from typing import Any, Dict +from typing import Any +from typing import Dict from typing import List Preset = Dict[str, Any] @@ -8,13 +9,7 @@ class PrebuiltPresets: BASE_PRESET: str def _preset(self, name: str, presets: List[str]) -> Preset: - return { - "presets": { - name: { - "preset": [self.BASE_PRESET] + presets - } - } - } + return {"presets": {name: {"preset": [self.BASE_PRESET] + presets}}} def _tv_show_url(self, name: str) -> Preset: """ diff --git a/tests/unit/prebuilt_presets/test_prebuilt_presets.py b/tests/unit/prebuilt_presets/test_prebuilt_presets.py index 200a3809..6bc6e415 100644 --- a/tests/unit/prebuilt_presets/test_prebuilt_presets.py +++ b/tests/unit/prebuilt_presets/test_prebuilt_presets.py @@ -6,26 +6,26 @@ from ytdl_sub.config.config_file import ConfigFile from ytdl_sub.config.preset import Preset from ytdl_sub.prebuilt_presets import PrebuiltKodiTVShowPresets + @pytest.fixture def config() -> ConfigFile: return ConfigFile( name="config", value={"configuration": {"working_directory": "test"}, "presets": {}} ) + class TestPrebuiltTVShowPresets: - - - @pytest.mark.parametrize("preset_name", PrebuiltKodiTVShowPresets.get_preset_names()) def test_presets_compile(self, config, preset_name: str): Preset.from_dict( config=config, preset_name=f"{preset_name}-test", preset_dict={ - 'preset': preset_name, - 'overrides': { - 'tv_show_name': 'test tv show', - 'tv_show_directory': 'output_path' - } - } - ) \ No newline at end of file + "preset": preset_name, + "overrides": { + "url": "https://your.name.here", + "tv_show_name": "test tv show", + "tv_show_directory": "output_path", + }, + }, + )