advanced
This commit is contained in:
parent
85673fd9d7
commit
e1dd13c032
5 changed files with 80 additions and 33 deletions
|
|
@ -95,3 +95,6 @@ presets:
|
|||
- "no_shorts"
|
||||
- "season_by_year__episode_by_month_day_reversed"
|
||||
- "Only Recent"
|
||||
|
||||
overrides:
|
||||
date_range: "2months"
|
||||
|
|
|
|||
|
|
@ -1,27 +1,29 @@
|
|||
# Subscriptions using custom presets made in `tv_show_config.yaml`
|
||||
|
||||
TV Show Full Archive:
|
||||
= Documentaries | TV-PG:
|
||||
= Documentaries | = TV-PG:
|
||||
"NOVA PBS": "https://www.youtube.com/@novapbs"
|
||||
"National Geographic": "https://www.youtube.com/@NatGeo"
|
||||
"Cosmos - What If": "https://www.youtube.com/playlist?list=PLZdXRHYAVxTJno6oFF9nLGuwXNGYHmE8U"
|
||||
|
||||
= Kids | TV-Y:
|
||||
= Kids | = TV-Y:
|
||||
"Jake Trains": "https://www.youtube.com/@JakeTrains"
|
||||
"Kids Toys Play": "https://www.youtube.com/@KidsToysPlayChannel"
|
||||
|
||||
= Gardening | TV-Y:
|
||||
= Gardening | = TV-Y:
|
||||
# TV Show presets support multiple URLs as a list
|
||||
"Gardening with Ciscoe":
|
||||
# Can define a subscription using 'preset' syntax. Needed for using multiple
|
||||
# urls in a single TV show
|
||||
overrides:
|
||||
url: "https://www.youtube.com/@gardeningwithciscoe4430"
|
||||
url2: "https://www.youtube.com/playlist?list=PLi8V8UemxeG6lo5if5H5g5EbsteELcb0_"
|
||||
url3: "https://www.youtube.com/playlist?list=PLsJlQSR-KjmaQqqJ9jq18cF6XXXAR4kyn"
|
||||
url4: "https://www.youtube.com/watch?v=2vq-vPubS5I"
|
||||
- "https://www.youtube.com/@gardeningwithciscoe4430"
|
||||
- "https://www.youtube.com/playlist?list=PLi8V8UemxeG6lo5if5H5g5EbsteELcb0_"
|
||||
- "https://www.youtube.com/playlist?list=PLsJlQSR-KjmaQqqJ9jq18cF6XXXAR4kyn"
|
||||
- "https://www.youtube.com/watch?v=2vq-vPubS5I"
|
||||
|
||||
TV Show Only Recent:
|
||||
= News | TV-14:
|
||||
"BBC": "https://www.youtube.com/@BBCNews"
|
||||
= News | = TV-14:
|
||||
# Subscriptions can prefix a tilda to specify override variables
|
||||
# to set only for that subscriptions
|
||||
"~BBC News":
|
||||
url: "https://www.youtube.com/@BBCNews"
|
||||
date_range: "2weeks"
|
||||
"Frontline PBS": "https://www.youtube.com/@frontline"
|
||||
"Whitehouse": "https://www.bitchute.com/channel/zWsYVmCOu4JA/" # Supports non-YT sites
|
||||
|
|
@ -61,26 +61,45 @@ presets:
|
|||
- url: "{url20}"
|
||||
overrides:
|
||||
subscription_value: ""
|
||||
subscription_value_2: ""
|
||||
subscription_value_3: ""
|
||||
subscription_value_4: ""
|
||||
subscription_value_5: ""
|
||||
subscription_value_6: ""
|
||||
subscription_value_7: ""
|
||||
subscription_value_8: ""
|
||||
subscription_value_9: ""
|
||||
subscription_value_10: ""
|
||||
subscription_value_11: ""
|
||||
subscription_value_12: ""
|
||||
subscription_value_13: ""
|
||||
subscription_value_14: ""
|
||||
subscription_value_15: ""
|
||||
subscription_value_16: ""
|
||||
subscription_value_17: ""
|
||||
subscription_value_18: ""
|
||||
subscription_value_19: ""
|
||||
subscription_value_20: ""
|
||||
url: "{subscription_value}"
|
||||
url2: ""
|
||||
url3: ""
|
||||
url4: ""
|
||||
url5: ""
|
||||
url6: ""
|
||||
url7: ""
|
||||
url8: ""
|
||||
url9: ""
|
||||
url10: ""
|
||||
url11: ""
|
||||
url12: ""
|
||||
url13: ""
|
||||
url14: ""
|
||||
url15: ""
|
||||
url16: ""
|
||||
url17: ""
|
||||
url18: ""
|
||||
url19: ""
|
||||
url20: ""
|
||||
url2: "{subscription_value_2}"
|
||||
url3: "{subscription_value_3}"
|
||||
url4: "{subscription_value_4}"
|
||||
url5: "{subscription_value_5}"
|
||||
url6: "{subscription_value_6}"
|
||||
url7: "{subscription_value_7}"
|
||||
url8: "{subscription_value_8}"
|
||||
url9: "{subscription_value_9}"
|
||||
url10: "{subscription_value_10}"
|
||||
url11: "{subscription_value_11}"
|
||||
url12: "{subscription_value_12}"
|
||||
url13: "{subscription_value_13}"
|
||||
url14: "{subscription_value_14}"
|
||||
url15: "{subscription_value_15}"
|
||||
url16: "{subscription_value_16}"
|
||||
url17: "{subscription_value_17}"
|
||||
url18: "{subscription_value_18}"
|
||||
url19: "{subscription_value_19}"
|
||||
url20: "{subscription_value_20}"
|
||||
|
||||
####################################################################################################
|
||||
|
||||
|
|
|
|||
|
|
@ -183,6 +183,11 @@ def tv_show_subscriptions_path() -> Path:
|
|||
return Path("examples/tv_show_subscriptions.yaml")
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def advanced_tv_show_subscriptions_path() -> Path:
|
||||
return Path("examples/advanced/tv_show_subscriptions.yaml")
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def default_config(working_directory) -> ConfigFile:
|
||||
return ConfigFile.from_dict({"configuration": {"working_directory": working_directory}})
|
||||
|
|
|
|||
|
|
@ -489,9 +489,9 @@ def test_subscription_file_invalid_form(config_file: ConfigFile):
|
|||
_ = Subscription.from_file_path(config=config_file, subscription_path="mocked")
|
||||
|
||||
|
||||
def test_tv_show_subscriptions(tv_show_config: ConfigFile, tv_show_subscriptions_path: Path):
|
||||
def test_tv_show_subscriptions(config_file: ConfigFile, tv_show_subscriptions_path: Path):
|
||||
subs = Subscription.from_file_path(
|
||||
config=tv_show_config, subscription_path=tv_show_subscriptions_path
|
||||
config=config_file, subscription_path=tv_show_subscriptions_path
|
||||
)
|
||||
|
||||
assert len(subs) == 6
|
||||
|
|
@ -505,6 +505,24 @@ def test_tv_show_subscriptions(tv_show_config: ConfigFile, tv_show_subscriptions
|
|||
assert jake_train_overrides["subscription_indent_2"] == "TV-Y"
|
||||
|
||||
|
||||
def test_advanced_tv_show_subscriptions(
|
||||
tv_show_config: ConfigFile, advanced_tv_show_subscriptions_path: Path
|
||||
):
|
||||
subs = Subscription.from_file_path(
|
||||
config=tv_show_config, subscription_path=advanced_tv_show_subscriptions_path
|
||||
)
|
||||
|
||||
assert len(subs) == 9
|
||||
assert subs[3].name == "Jake Trains"
|
||||
jake_train_overrides = subs[3].overrides.dict_with_format_strings
|
||||
|
||||
assert jake_train_overrides["subscription_name"] == "Jake Trains"
|
||||
assert jake_train_overrides["subscription_name_sanitized"] == "Jake Trains"
|
||||
assert jake_train_overrides["subscription_value"] == "https://www.youtube.com/@JakeTrains"
|
||||
assert jake_train_overrides["subscription_indent_1"] == "Kids"
|
||||
assert jake_train_overrides["subscription_indent_2"] == "TV-Y"
|
||||
|
||||
|
||||
def test_music_subscriptions(default_config: ConfigFile, music_subscriptions_path: Path):
|
||||
subs = Subscription.from_file_path(
|
||||
config=default_config, subscription_path=music_subscriptions_path
|
||||
|
|
|
|||
Loading…
Reference in a new issue