This commit is contained in:
Jesse Bannon 2022-09-29 00:10:24 -07:00
parent aac0f965fb
commit 42b5802778
6 changed files with 39 additions and 33 deletions

View file

@ -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()

View file

@ -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:

View file

@ -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}"

View file

@ -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"

View file

@ -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:
"""

View file

@ -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'
}
}
)
"preset": preset_name,
"overrides": {
"url": "https://your.name.here",
"tv_show_name": "test tv show",
"tv_show_directory": "output_path",
},
},
)