Compare commits

...

3 commits

Author SHA1 Message Date
Jesse Bannon
2d08320bed done?? 2024-06-02 21:56:11 -07:00
Jesse Bannon
c00031b84c moar 2024-06-02 21:43:21 -07:00
Jesse Bannon
7a646c0f76 WIP 2024-06-02 21:09:38 -07:00

View file

@ -0,0 +1,69 @@
presets:
# Preset for categorizing URls like so
#
# subscription_name:
# category_1:
# - https://...1
# - https://...2
# category_2:
# - url: https://...1
# metadata_field_1: 2011
# metadata_field_2: 'abc"
# ...
#
# Metadata field of `url` must exist, other ones can be anything.
# Only supports a single level of nesting.
_url_categorized:
overrides:
# Parameters:
# $0: url string or map containing url + metadata fields
# $1: category key
#
# Output:
# Map containing { url: ..., category: ..., metadata_field_1: ... }
"%flat_array__url_to_map_format": >-
{
%if(
%is_map($0),
%map_extend( $0, { "category": $1 } ),
{ "url": $0, "category": $1 }
}
# Parameters:
# $0: category key
# $1: array of URLs in either string or map form
#
# Output:
# Array containing [{ url: ..., category: ... }, ... ]
"%flat_array__category_to_map_format": >-
{ %array_apply_fixed( $1, $0, %flat_array__url_to_map_format ) }
# Parameters:
# $0: map containing fields { url: <url_value>, category: ... }
#
# Output:
# Nested map containing { <url_value>: { url: <url_value>, category: ... } }
"%flat_array__url_keyed_map_format": >-
{ { %map_get($0, "url"): $0 } }
# Creates an array in the form of [ { url: ..., category: ..., metadata_field_1: ... }, ... ]
category_url_array: >-
{ %map_apply( subscription_dict, %flat_array__category_to_map_format ) }
# Creates a map in the form of { <url value>: { category: ..., metadata_field_1: ... }, ... }
category_url_map: >-
{
%array_reduce(
%array_apply( category_array, %flat_array__url_keyed_map_format ),
%map_extend
)
}
# Parameters:
# $0: metadata field to fetch for the current url
#
# Output:
# Metadata field value. Empty string/null if it does not exist
"%get_url_field": >-
{ %map_get( %map_get( category_url_map, ytdl_sub_input_url, {} ), $0, null ) }