ytdl-sub/tests/unit
Jesse Bannon 9f408d2196
[FEATURE] Extend subscription syntax (#790)
Extends the subscription.yaml syntax at the cost of introducing a breaking change.

# New Syntax
## Mix-n-match presets and indent variables
```
# Can mix/match presets and indent override variables.
# Uses presets TV Show, Only Recent and assigns Kids, TV-Y to subscription_indent_1 and _2
TV Show | = Kids | = TV-Y | Only Recent:
  "Jake Trains": "https://..."
```

## Subscriptions with list-value support
```
TV Show | = Kids | = TV-Y | Only Recent:
  "Jake Trains":
    - "https://url.1..."  # Assigns to subscription_value and subscription_value_1
    - "https://url.2..."  # Assigns to subscription_value_2
```

## Subscriptions with override-keys support
```
TV Show | = Kids | = TV-Y | Only Recent:
  "~Jake Trains":  # the ~ means "all keys underneath get assigned as override variables"
    url: "https://url.1..."  # Assigns to url
    url2: "https://url.2..."  # Assigns to url2
```

# Breaking Changes
In the TV show subscriptions example (https://github.com/jmbannon/ytdl-sub/blob/master/examples/tv_show_subscriptions.yaml), it had
```
TV Show Full Archive:
  # Sets "Kids" for genre, "TV-Y" for content rating
  = Kids | TV-Y:
    "Jake Trains": "https://www.youtube.com/@JakeTrains"
    "Kids Toys Play": "https://www.youtube.com/@KidsToysPlayChannel"
```
This must be changed to
```
TV Show Full Archive:
  # Sets "Kids" for genre, "TV-Y" for content rating
  = Kids | = TV-Y:  # Each indent variable assignment must have an = before it
    "Jake Trains": "https://www.youtube.com/@JakeTrains"
    "Kids Toys Play": "https://www.youtube.com/@KidsToysPlayChannel"
```
2023-11-01 20:24:06 -07:00
..
cli [FEATURE] Prebuilt Music Videos (#787) 2023-10-28 00:12:22 -07:00
config [FEATURE] Extend subscription syntax (#790) 2023-11-01 20:24:06 -07:00
entries [FEATURE] release_date source variables (#638) 2023-06-24 23:01:18 -07:00
main [FEATURE] Process all subscriptions even if one or more error (#771) 2023-10-21 12:25:38 -07:00
plugins [FEATURE] Regex capture and filtering on source variables plugin (#100) 2022-07-16 23:39:46 -07:00
prebuilt_presets [FEATURE] Prebuilt Music Videos (#787) 2023-10-28 00:12:22 -07:00
utils [FEATURE] Process all subscriptions even if one or more error (#771) 2023-10-21 12:25:38 -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