ytdl-sub/tests/unit
Jesse Bannon c255f40348
[FEATURE] Subscription nesting (#747)
Closes Feature Request: https://github.com/jmbannon/ytdl-sub/issues/743

Subscriptions support using presets as keys, and using keys to set override variables as values.
For example:

```
tv_show:
  only_recent:
    [News]:
      "Breaking News": "https://www.youtube.com/@SomeBreakingNews"

  [Tech]:
    "Two Minute Papers": "https://www.youtube.com/@TwoMinutePapers"
```
Will create two subscriptions named "Breaking News" and "Two Minute Papers", equivalent to:

```
"Breaking News":
  preset:
    - "tv_show"
    - "only_recent"

  overrides:
    subscription_indent_1: "News"
    subscription_name: "Breaking News"
    subscription_value: "https://www.youtube.com/@SomeBreakingNews"

"Two Minute Papers":
  preset:
    - "tv_show"

  overrides:
    subscription_indent_1: "Tech"
    subscription_name: "Two Minute Papers"     subscription_value: "https://www.youtube.com/@TwoMinutePapers"
```

You can provide as many parent presets in the form of keys, and subscription indents as ``[keys]``.
This can drastically simplify subscription definitions by setting things you want configurable like so in your
parent preset:

```
presets:
  tv_show_name:
    overrides:
      tv_show_name: "{subscription_name}"
      url: "{subscription_value}"
      genre: "{subscription_indent_1}"
```

NOTE!!!
Changing your subscription name from 'legacy' subscriptions will need their download archive file migrated to a new name. A future update will assist in this migration process. Either wait until then or, if you consider yourself a ytdl-sub expert, keep a backup of your subscription file before migrating.
2023-10-02 16:07:48 -07:00
..
cli [FEATURE][EXPERIMENTAL] --update-with-info-json (#557) 2023-03-21 08:05:08 -07:00
config [FEATURE] Subscription nesting (#747) 2023-10-02 16:07:48 -07:00
entries [FEATURE] release_date source variables (#638) 2023-06-24 23:01:18 -07:00
main [BACKEND] More explicit error message for PermissionError (#736) 2023-09-21 23:06:57 -07:00
plugins [FEATURE] Regex capture and filtering on source variables plugin (#100) 2022-07-16 23:39:46 -07:00
prebuilt_presets [REFACTOR] Support simple download (#671) 2023-07-26 09:00:00 -07:00
utils [BACKEND] Include yaml exception in error (#678) 2023-07-29 23:05:34 -07:00
validators [FEATURE] Configurable file_name_max_bytes (#562) 2023-03-25 20:17:38 -07:00
__init__.py entry 100% test coverage 2022-03-30 16:48:04 +00:00