updated fixtures
This commit is contained in:
parent
dd28780030
commit
5f246b419c
5 changed files with 46 additions and 56 deletions
|
|
@ -11,7 +11,6 @@ from ytdl_sub.script.types.syntax_tree import SyntaxTree
|
||||||
from ytdl_sub.script.utils.exceptions import RuntimeException
|
from ytdl_sub.script.utils.exceptions import RuntimeException
|
||||||
from ytdl_sub.script.utils.exceptions import ScriptVariableNotResolved
|
from ytdl_sub.script.utils.exceptions import ScriptVariableNotResolved
|
||||||
from ytdl_sub.script.utils.exceptions import UserException
|
from ytdl_sub.script.utils.exceptions import UserException
|
||||||
from ytdl_sub.script.utils.exceptions import UserThrownRuntimeError
|
|
||||||
from ytdl_sub.utils.exceptions import StringFormattingVariableNotFoundException
|
from ytdl_sub.utils.exceptions import StringFormattingVariableNotFoundException
|
||||||
from ytdl_sub.utils.script import ScriptUtils
|
from ytdl_sub.utils.script import ScriptUtils
|
||||||
from ytdl_sub.validators.validators import DictValidator
|
from ytdl_sub.validators.validators import DictValidator
|
||||||
|
|
@ -225,28 +224,16 @@ class UnstructuredOverridesDictFormatterValidator(UnstructuredDictFormatterValid
|
||||||
_key_validator = OverridesStringFormatterValidator
|
_key_validator = OverridesStringFormatterValidator
|
||||||
|
|
||||||
|
|
||||||
def to_variable_dependency_format_string(script: Script, parsed_format_string: SyntaxTree) -> str:
|
|
||||||
"""
|
|
||||||
Create a dummy format string that contains all variable deps as a string.
|
|
||||||
"""
|
|
||||||
dummy_format_string = ""
|
|
||||||
for var in parsed_format_string.variables:
|
|
||||||
dummy_format_string += f"{{ {var.name} }}"
|
|
||||||
for variable_dependency in script._variables[var.name].variables:
|
|
||||||
dummy_format_string += f"{{ {variable_dependency.name} }}"
|
|
||||||
return dummy_format_string
|
|
||||||
|
|
||||||
|
|
||||||
def _validate_formatter(
|
def _validate_formatter(
|
||||||
mock_script: Script,
|
mock_script: Script,
|
||||||
unresolved_variables: Set[str],
|
unresolved_variables: Set[str],
|
||||||
unresolved_runtime_variables: Set[str],
|
unresolved_runtime_variables: Set[str],
|
||||||
formatter_validator: Union[StringFormatterValidator, OverridesStringFormatterValidator],
|
formatter_validator: Union[StringFormatterValidator, OverridesStringFormatterValidator],
|
||||||
partial_resolve_entry_formatters: bool,
|
partial_resolve_entry_formatters: bool,
|
||||||
) -> str:
|
) -> Any:
|
||||||
parsed = formatter_validator.parsed
|
parsed = formatter_validator.parsed
|
||||||
if resolved := parsed.maybe_resolvable:
|
if resolved := parsed.maybe_resolvable:
|
||||||
return resolved.native
|
return formatter_validator.post_process(resolved.native)
|
||||||
|
|
||||||
is_static_formatter = isinstance(formatter_validator, OverridesStringFormatterValidator)
|
is_static_formatter = isinstance(formatter_validator, OverridesStringFormatterValidator)
|
||||||
|
|
||||||
|
|
@ -282,11 +269,16 @@ def _validate_formatter(
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if is_static_formatter:
|
if is_static_formatter:
|
||||||
return mock_script.resolve_once_parsed(
|
return formatter_validator.post_process(
|
||||||
{"tmp_var": formatter_validator.parsed},
|
mock_script.resolve_once_parsed(
|
||||||
unresolvable=unresolved_variables,
|
{"tmp_var": formatter_validator.parsed},
|
||||||
update=True,
|
unresolvable=unresolved_variables,
|
||||||
)["tmp_var"].native
|
update=True,
|
||||||
|
)["tmp_var"].native
|
||||||
|
)
|
||||||
|
|
||||||
|
if maybe_resolved := parsed.maybe_resolvable:
|
||||||
|
return formatter_validator.post_process(maybe_resolved)
|
||||||
|
|
||||||
return ScriptUtils.to_native_script(parsed)
|
return ScriptUtils.to_native_script(parsed)
|
||||||
except RuntimeException as exc:
|
except RuntimeException as exc:
|
||||||
|
|
@ -296,12 +288,6 @@ def _validate_formatter(
|
||||||
"entry variables"
|
"entry variables"
|
||||||
) from exc
|
) from exc
|
||||||
raise StringFormattingVariableNotFoundException(exc) from exc
|
raise StringFormattingVariableNotFoundException(exc) from exc
|
||||||
except UserThrownRuntimeError as exc:
|
|
||||||
# Errors are expected for non-static formatters due to missing entry
|
|
||||||
# data. Raise otherwise.
|
|
||||||
if not is_static_formatter:
|
|
||||||
return formatter_validator.format_string
|
|
||||||
raise exc
|
|
||||||
|
|
||||||
|
|
||||||
def validate_formatters(
|
def validate_formatters(
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,17 @@
|
||||||
"chapters": {
|
"chapters": {
|
||||||
"allow_chapters_from_comments": false,
|
"allow_chapters_from_comments": false,
|
||||||
"embed_chapters": true,
|
"embed_chapters": true,
|
||||||
"enable": "True",
|
"enable": true,
|
||||||
"force_key_frames": false
|
"force_key_frames": false
|
||||||
},
|
},
|
||||||
"date_range": {
|
"date_range": {
|
||||||
"breaks": "True",
|
"breaks": true,
|
||||||
"enable": "True",
|
"enable": true,
|
||||||
"type": "upload_date"
|
"type": "upload_date"
|
||||||
},
|
},
|
||||||
"download": [
|
"download": [
|
||||||
{
|
{
|
||||||
"download_reverse": "True",
|
"download_reverse": true,
|
||||||
"include_sibling_metadata": false,
|
"include_sibling_metadata": false,
|
||||||
"playlist_thumbnails": [
|
"playlist_thumbnails": [
|
||||||
{
|
{
|
||||||
|
|
@ -34,7 +34,9 @@
|
||||||
"uid": "banner_uncropped"
|
"uid": "banner_uncropped"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"url": "https://www.youtube.com/@novapbs",
|
"url": [
|
||||||
|
"https://www.youtube.com/@novapbs"
|
||||||
|
],
|
||||||
"variables": {},
|
"variables": {},
|
||||||
"webpage_url": "{ %map_get( entry_metadata, \"webpage_url\" ) }",
|
"webpage_url": "{ %map_get( entry_metadata, \"webpage_url\" ) }",
|
||||||
"ytdl_options": {}
|
"ytdl_options": {}
|
||||||
|
|
@ -43,7 +45,7 @@
|
||||||
"file_convert": {
|
"file_convert": {
|
||||||
"convert_to": "mp4",
|
"convert_to": "mp4",
|
||||||
"convert_with": "yt-dlp",
|
"convert_with": "yt-dlp",
|
||||||
"enable": "True"
|
"enable": true
|
||||||
},
|
},
|
||||||
"format": "(bv*[ext=mp4][vcodec~='^((he|a)vc|h26[45])']+ba[ext=m4a]) / (bv[ext=mp4]*+ba[ext=m4a]/b)",
|
"format": "(bv*[ext=mp4][vcodec~='^((he|a)vc|h26[45])']+ba[ext=m4a]) / (bv[ext=mp4]*+ba[ext=m4a]/b)",
|
||||||
"output_options": {
|
"output_options": {
|
||||||
|
|
@ -52,7 +54,7 @@
|
||||||
"info_json_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ), \".e\", %string( %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ) ), \" - \", %string( %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) ) ) ) }.info.json",
|
"info_json_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ), \".e\", %string( %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ) ), \" - \", %string( %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) ) ) ) }.info.json",
|
||||||
"keep_files_date_eval": "{ %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"date_standardized\" ) ) }",
|
"keep_files_date_eval": "{ %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"date_standardized\" ) ) }",
|
||||||
"maintain_download_archive": true,
|
"maintain_download_archive": true,
|
||||||
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp_iqgtgmn/NOVA PBS",
|
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp8vzxo6z8/NOVA PBS",
|
||||||
"preserve_mtime": false,
|
"preserve_mtime": false,
|
||||||
"thumbnail_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ), \".e\", %string( %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ) ), \" - \", %string( %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) ) ) ) }-thumb.jpg"
|
"thumbnail_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ), \".e\", %string( %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ) ), \" - \", %string( %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) ) ) ) }-thumb.jpg"
|
||||||
},
|
},
|
||||||
|
|
@ -110,7 +112,7 @@
|
||||||
"tv_show_content_rating": "TV-14",
|
"tv_show_content_rating": "TV-14",
|
||||||
"tv_show_content_rating_default": "TV-14",
|
"tv_show_content_rating_default": "TV-14",
|
||||||
"tv_show_date_range_type": "upload_date",
|
"tv_show_date_range_type": "upload_date",
|
||||||
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp_iqgtgmn",
|
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp8vzxo6z8",
|
||||||
"tv_show_fanart_file_name": "fanart.jpg",
|
"tv_show_fanart_file_name": "fanart.jpg",
|
||||||
"tv_show_genre": "Documentaries",
|
"tv_show_genre": "Documentaries",
|
||||||
"tv_show_genre_default": "ytdl-sub",
|
"tv_show_genre_default": "ytdl-sub",
|
||||||
|
|
@ -223,16 +225,16 @@
|
||||||
"throttle_protection": {
|
"throttle_protection": {
|
||||||
"enable": true,
|
"enable": true,
|
||||||
"sleep_per_download_s": {
|
"sleep_per_download_s": {
|
||||||
"max": "28.4",
|
"max": 28.4,
|
||||||
"min": "13.8"
|
"min": 13.8
|
||||||
},
|
},
|
||||||
"sleep_per_request_s": {
|
"sleep_per_request_s": {
|
||||||
"max": "0.75",
|
"max": 0.75,
|
||||||
"min": "0.0"
|
"min": 0.0
|
||||||
},
|
},
|
||||||
"sleep_per_subscription_s": {
|
"sleep_per_subscription_s": {
|
||||||
"max": "26.1",
|
"max": 26.1,
|
||||||
"min": "16.3"
|
"min": 16.3
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"video_tags": {
|
"video_tags": {
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
"tv_show_content_rating": "{subscription_indent_2}",
|
"tv_show_content_rating": "{subscription_indent_2}",
|
||||||
"tv_show_content_rating_default": "TV-14",
|
"tv_show_content_rating_default": "TV-14",
|
||||||
"tv_show_date_range_type": "{\n %if(\n %contains(tv_show_by_date_season_ordering, \"release\"),\n \"release_date\",\n \"upload_date\"\n )\n}",
|
"tv_show_date_range_type": "{\n %if(\n %contains(tv_show_by_date_season_ordering, \"release\"),\n \"release_date\",\n \"upload_date\"\n )\n}",
|
||||||
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpjjbduqm_",
|
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpg7qxc12z",
|
||||||
"tv_show_fanart_file_name": "fanart.jpg",
|
"tv_show_fanart_file_name": "fanart.jpg",
|
||||||
"tv_show_genre": "{subscription_indent_1}",
|
"tv_show_genre": "{subscription_indent_1}",
|
||||||
"tv_show_genre_default": "ytdl-sub",
|
"tv_show_genre_default": "ytdl-sub",
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,17 @@
|
||||||
"chapters": {
|
"chapters": {
|
||||||
"allow_chapters_from_comments": false,
|
"allow_chapters_from_comments": false,
|
||||||
"embed_chapters": true,
|
"embed_chapters": true,
|
||||||
"enable": "True",
|
"enable": true,
|
||||||
"force_key_frames": false
|
"force_key_frames": false
|
||||||
},
|
},
|
||||||
"date_range": {
|
"date_range": {
|
||||||
"breaks": "True",
|
"breaks": true,
|
||||||
"enable": "True",
|
"enable": true,
|
||||||
"type": "upload_date"
|
"type": "upload_date"
|
||||||
},
|
},
|
||||||
"download": [
|
"download": [
|
||||||
{
|
{
|
||||||
"download_reverse": "True",
|
"download_reverse": true,
|
||||||
"include_sibling_metadata": false,
|
"include_sibling_metadata": false,
|
||||||
"playlist_thumbnails": [
|
"playlist_thumbnails": [
|
||||||
{
|
{
|
||||||
|
|
@ -34,7 +34,9 @@
|
||||||
"uid": "banner_uncropped"
|
"uid": "banner_uncropped"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"url": "https://www.youtube.com/@novapbs",
|
"url": [
|
||||||
|
"https://www.youtube.com/@novapbs"
|
||||||
|
],
|
||||||
"variables": {},
|
"variables": {},
|
||||||
"webpage_url": "{ webpage_url }",
|
"webpage_url": "{ webpage_url }",
|
||||||
"ytdl_options": {}
|
"ytdl_options": {}
|
||||||
|
|
@ -43,7 +45,7 @@
|
||||||
"file_convert": {
|
"file_convert": {
|
||||||
"convert_to": "mp4",
|
"convert_to": "mp4",
|
||||||
"convert_with": "yt-dlp",
|
"convert_with": "yt-dlp",
|
||||||
"enable": "True"
|
"enable": true
|
||||||
},
|
},
|
||||||
"format": "(bv*[ext=mp4][vcodec~='^((he|a)vc|h26[45])']+ba[ext=m4a]) / (bv[ext=mp4]*+ba[ext=m4a]/b)",
|
"format": "(bv*[ext=mp4][vcodec~='^((he|a)vc|h26[45])']+ba[ext=m4a]) / (bv[ext=mp4]*+ba[ext=m4a]/b)",
|
||||||
"output_options": {
|
"output_options": {
|
||||||
|
|
@ -52,7 +54,7 @@
|
||||||
"info_json_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( upload_year ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( upload_year ), \".e\", %string( %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) ), \" - \", %string( title_sanitized_plex ) ) ) ) ) }.{ info_json_ext }",
|
"info_json_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( upload_year ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( upload_year ), \".e\", %string( %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) ), \" - \", %string( title_sanitized_plex ) ) ) ) ) }.{ info_json_ext }",
|
||||||
"keep_files_date_eval": "{ upload_date_standardized }",
|
"keep_files_date_eval": "{ upload_date_standardized }",
|
||||||
"maintain_download_archive": true,
|
"maintain_download_archive": true,
|
||||||
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmptcec16mv/NOVA PBS",
|
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpk9271nih/NOVA PBS",
|
||||||
"preserve_mtime": false,
|
"preserve_mtime": false,
|
||||||
"thumbnail_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( upload_year ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( upload_year ), \".e\", %string( %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) ), \" - \", %string( title_sanitized_plex ) ) ) ) ) }-thumb.jpg"
|
"thumbnail_name": "{ %concat( %string( %sanitize( %concat( \"Season \", %string( upload_year ) ) ) ), \"/\", %string( %sanitize( %concat( \"s\", %string( upload_year ), \".e\", %string( %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) ), \" - \", %string( title_sanitized_plex ) ) ) ) ) }-thumb.jpg"
|
||||||
},
|
},
|
||||||
|
|
@ -110,7 +112,7 @@
|
||||||
"tv_show_content_rating": "TV-14",
|
"tv_show_content_rating": "TV-14",
|
||||||
"tv_show_content_rating_default": "TV-14",
|
"tv_show_content_rating_default": "TV-14",
|
||||||
"tv_show_date_range_type": "upload_date",
|
"tv_show_date_range_type": "upload_date",
|
||||||
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmptcec16mv",
|
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpk9271nih",
|
||||||
"tv_show_fanart_file_name": "fanart.jpg",
|
"tv_show_fanart_file_name": "fanart.jpg",
|
||||||
"tv_show_genre": "Documentaries",
|
"tv_show_genre": "Documentaries",
|
||||||
"tv_show_genre_default": "ytdl-sub",
|
"tv_show_genre_default": "ytdl-sub",
|
||||||
|
|
@ -223,16 +225,16 @@
|
||||||
"throttle_protection": {
|
"throttle_protection": {
|
||||||
"enable": true,
|
"enable": true,
|
||||||
"sleep_per_download_s": {
|
"sleep_per_download_s": {
|
||||||
"max": "28.4",
|
"max": 28.4,
|
||||||
"min": "13.8"
|
"min": 13.8
|
||||||
},
|
},
|
||||||
"sleep_per_request_s": {
|
"sleep_per_request_s": {
|
||||||
"max": "0.75",
|
"max": 0.75,
|
||||||
"min": "0.0"
|
"min": 0.0
|
||||||
},
|
},
|
||||||
"sleep_per_subscription_s": {
|
"sleep_per_subscription_s": {
|
||||||
"max": "26.1",
|
"max": 26.1,
|
||||||
"min": "16.3"
|
"min": 16.3
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"video_tags": {
|
"video_tags": {
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ def _ensure_resolved_yaml(
|
||||||
|
|
||||||
if resolution_level > ResolutionLevel.ORIGINAL:
|
if resolution_level > ResolutionLevel.ORIGINAL:
|
||||||
expected_out["output_options"]["output_directory"] = FilePathTruncater.to_native_filepath(
|
expected_out["output_options"]["output_directory"] = FilePathTruncater.to_native_filepath(
|
||||||
str(Path(output_directory) / "ass")
|
str(Path(output_directory) / sub.name)
|
||||||
)
|
)
|
||||||
|
|
||||||
if "tv_show_directory" in expected_out["overrides"]:
|
if "tv_show_directory" in expected_out["overrides"]:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue