sanitized vars created
This commit is contained in:
parent
142d87d14e
commit
d9b33b2052
4 changed files with 42 additions and 2 deletions
|
|
@ -2,6 +2,8 @@ from typing import Dict
|
||||||
from typing import List
|
from typing import List
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from yt_dlp.utils import sanitize_filename
|
||||||
|
|
||||||
from ytdl_sub.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_sub.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
from ytdl_sub.plugins.plugin import PluginOptions
|
from ytdl_sub.plugins.plugin import PluginOptions
|
||||||
|
|
@ -119,6 +121,7 @@ class RegexOptions(PluginOptions):
|
||||||
# Perform this regex match on it to act as a filter.
|
# Perform this regex match on it to act as a filter.
|
||||||
# This will only download videos with "Official Video" in it.
|
# This will only download videos with "Official Video" in it.
|
||||||
match: '\[Official Video\]'
|
match: '\[Official Video\]'
|
||||||
|
|
||||||
# For each entry's `description` value...
|
# For each entry's `description` value...
|
||||||
description:
|
description:
|
||||||
# Match with capture groups and defaults.
|
# Match with capture groups and defaults.
|
||||||
|
|
@ -126,7 +129,7 @@ class RegexOptions(PluginOptions):
|
||||||
match: "([0-9]{4})-([0-9]{2})-([0-9]{2})"
|
match: "([0-9]{4})-([0-9]{2})-([0-9]{2})"
|
||||||
|
|
||||||
# Each capture group creates these new source variables, respectively, as well
|
# Each capture group creates these new source variables, respectively, as well
|
||||||
# a sanitized version, i.e. `sanitized_captured_upload_year`
|
# a sanitized version, i.e. `captured_upload_year_sanitized`
|
||||||
capture_group_names:
|
capture_group_names:
|
||||||
- "captured_upload_year"
|
- "captured_upload_year"
|
||||||
- "captured_upload_month"
|
- "captured_upload_month"
|
||||||
|
|
@ -209,6 +212,10 @@ class RegexOptions(PluginOptions):
|
||||||
added_source_vars: List[str] = []
|
added_source_vars: List[str] = []
|
||||||
for regex_options in self.source_variable_capture_dict.values():
|
for regex_options in self.source_variable_capture_dict.values():
|
||||||
added_source_vars.extend(regex_options.capture_group_names)
|
added_source_vars.extend(regex_options.capture_group_names)
|
||||||
|
added_source_vars.extend(
|
||||||
|
f"{capture_group_name}_sanitized"
|
||||||
|
for capture_group_name in regex_options.capture_group_names
|
||||||
|
)
|
||||||
|
|
||||||
return added_source_vars
|
return added_source_vars
|
||||||
|
|
||||||
|
|
@ -260,6 +267,8 @@ class RegexPlugin(Plugin[RegexOptions]):
|
||||||
source_variables_and_overrides_dict = dict(
|
source_variables_and_overrides_dict = dict(
|
||||||
entry_variable_dict, **self.overrides.dict_with_format_strings
|
entry_variable_dict, **self.overrides.dict_with_format_strings
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# add both the default...
|
||||||
entry.add_variables(
|
entry.add_variables(
|
||||||
variables_to_add={
|
variables_to_add={
|
||||||
regex_options.capture_group_names[i]: default.apply_formatter(
|
regex_options.capture_group_names[i]: default.apply_formatter(
|
||||||
|
|
@ -268,14 +277,35 @@ class RegexPlugin(Plugin[RegexOptions]):
|
||||||
for i, default in enumerate(regex_options.capture_group_defaults)
|
for i, default in enumerate(regex_options.capture_group_defaults)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
# and sanitized default
|
||||||
|
entry.add_variables(
|
||||||
|
variables_to_add={
|
||||||
|
f"{regex_options.capture_group_names[i]}_sanitized": sanitize_filename(
|
||||||
|
default.apply_formatter(
|
||||||
|
variable_dict=source_variables_and_overrides_dict
|
||||||
|
)
|
||||||
|
)
|
||||||
|
for i, default in enumerate(regex_options.capture_group_defaults)
|
||||||
|
},
|
||||||
|
)
|
||||||
# There is a capture, add the source variables to the entry as
|
# There is a capture, add the source variables to the entry as
|
||||||
# {source_var}_capture_1, {source_var}_capture_2, ...
|
# {source_var}_capture_1, {source_var}_capture_2, ...
|
||||||
else:
|
else:
|
||||||
|
# Add the value...
|
||||||
entry.add_variables(
|
entry.add_variables(
|
||||||
variables_to_add={
|
variables_to_add={
|
||||||
regex_options.capture_group_names[i]: capture
|
regex_options.capture_group_names[i]: capture
|
||||||
for i, capture in enumerate(maybe_capture)
|
for i, capture in enumerate(maybe_capture)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
# And the sanitized value
|
||||||
|
entry.add_variables(
|
||||||
|
variables_to_add={
|
||||||
|
f"{regex_options.capture_group_names[i]}_sanitized": sanitize_filename(
|
||||||
|
capture
|
||||||
|
)
|
||||||
|
for i, capture in enumerate(maybe_capture)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
return entry
|
return entry
|
||||||
|
|
|
||||||
|
|
@ -56,16 +56,20 @@ def regex_subscription_dict(output_directory):
|
||||||
"nfo_tags": {
|
"nfo_tags": {
|
||||||
"tags": {
|
"tags": {
|
||||||
"title_cap_1": "{title_type}",
|
"title_cap_1": "{title_type}",
|
||||||
|
"title_cap_1_sanitized": "{title_type_sanitized}",
|
||||||
"title_cap_2": "{title_date}",
|
"title_cap_2": "{title_date}",
|
||||||
"desc_cap": "{description_website}",
|
"desc_cap": "{description_website}",
|
||||||
"upload_date_both_caps": "{upload_captured_year} and {upload_captured_month}",
|
"upload_date_both_caps": "{upload_captured_year} and {upload_captured_month}",
|
||||||
"artist_cap_always_default": "{always_default}",
|
"artist_cap_always_default": "{always_default}",
|
||||||
|
"artist_cap_always_default_sanitized": "{always_default_sanitized}",
|
||||||
"override_with_capture_variable": "{contains_regex_default}",
|
"override_with_capture_variable": "{contains_regex_default}",
|
||||||
|
"override_with_capture_variable_sanitized": "{contains_regex_sanitized_default}",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"in_regex_default": "in regex default",
|
"in_regex_default": "in regex default",
|
||||||
"contains_regex_default": "contains {title_type}",
|
"contains_regex_default": "contains {title_type}",
|
||||||
|
"contains_regex_sanitized_default": "contains {title_type_sanitized}",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,13 @@ Project Zombie - Jesse's Minecraft Server [Trailer - Feb.1].nfo
|
||||||
album: Music Videos
|
album: Music Videos
|
||||||
artist: Project Zombie
|
artist: Project Zombie
|
||||||
artist_cap_always_default: Always default
|
artist_cap_always_default: Always default
|
||||||
|
artist_cap_always_default_sanitized: Always default
|
||||||
desc_cap: www.jesseminecraft.webs
|
desc_cap: www.jesseminecraft.webs
|
||||||
override_with_capture_variable: contains Trailer
|
override_with_capture_variable: contains Trailer
|
||||||
|
override_with_capture_variable_sanitized: contains Trailer
|
||||||
title: Jesse's Minecraft Server [Trailer - Feb.1]
|
title: Jesse's Minecraft Server [Trailer - Feb.1]
|
||||||
title_cap_1: Trailer
|
title_cap_1: Trailer
|
||||||
|
title_cap_1_sanitized: Trailer
|
||||||
title_cap_2: Feb.1
|
title_cap_2: Feb.1
|
||||||
upload_date_both_caps: First and Second containing in regex default
|
upload_date_both_caps: First and Second containing in regex default
|
||||||
year: 2011
|
year: 2011
|
||||||
|
|
@ -24,10 +27,13 @@ Project Zombie - Jesse's Minecraft Server [Trailer - Feb.27].nfo
|
||||||
album: Music Videos
|
album: Music Videos
|
||||||
artist: Project Zombie
|
artist: Project Zombie
|
||||||
artist_cap_always_default: Always default
|
artist_cap_always_default: Always default
|
||||||
|
artist_cap_always_default_sanitized: Always default
|
||||||
desc_cap: jesseminecraft.webs
|
desc_cap: jesseminecraft.webs
|
||||||
override_with_capture_variable: contains Trailer
|
override_with_capture_variable: contains Trailer
|
||||||
|
override_with_capture_variable_sanitized: contains Trailer
|
||||||
title: Jesse's Minecraft Server [Trailer - Feb.27]
|
title: Jesse's Minecraft Server [Trailer - Feb.27]
|
||||||
title_cap_1: Trailer
|
title_cap_1: Trailer
|
||||||
|
title_cap_1_sanitized: Trailer
|
||||||
title_cap_2: Feb.27
|
title_cap_2: Feb.27
|
||||||
upload_date_both_caps: 2011 and 02
|
upload_date_both_caps: 2011 and 02
|
||||||
year: 2011
|
year: 2011
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
Files created in '{output_directory}'
|
Files created in '{output_directory}'
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
.ytdl-sub-jmc-download-archive.json
|
.ytdl-sub-music_video_playlist_test-download-archive.json
|
||||||
JMC - Jesse's Minecraft Server [Trailer - Feb.1]-thumb.jpg
|
JMC - Jesse's Minecraft Server [Trailer - Feb.1]-thumb.jpg
|
||||||
JMC - Jesse's Minecraft Server [Trailer - Feb.1].mp4
|
JMC - Jesse's Minecraft Server [Trailer - Feb.1].mp4
|
||||||
JMC - Jesse's Minecraft Server [Trailer - Feb.1].nfo
|
JMC - Jesse's Minecraft Server [Trailer - Feb.1].nfo
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue