fix filter
This commit is contained in:
parent
c1310c6a93
commit
5474c2f778
3 changed files with 20 additions and 5 deletions
|
|
@ -7,13 +7,14 @@ from ytdl_sub.config.validators.options import OptionsValidator
|
||||||
from ytdl_sub.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_sub.utils.exceptions import StringFormattingException
|
from ytdl_sub.utils.exceptions import StringFormattingException
|
||||||
from ytdl_sub.utils.logger import Logger
|
from ytdl_sub.utils.logger import Logger
|
||||||
from ytdl_sub.validators.string_formatter_validators import ListFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import BooleanFormatterValidator
|
||||||
|
from ytdl_sub.validators.validators import ListValidator
|
||||||
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
||||||
|
|
||||||
logger = Logger.get("filter-exclude")
|
logger = Logger.get("filter-exclude")
|
||||||
|
|
||||||
|
|
||||||
class FilterExcludeOptions(ListFormatterValidator, OptionsValidator):
|
class FilterExcludeOptions(ListValidator[BooleanFormatterValidator], OptionsValidator):
|
||||||
"""
|
"""
|
||||||
Applies a conditional OR on any number of filters comprised of either variables or scripts.
|
Applies a conditional OR on any number of filters comprised of either variables or scripts.
|
||||||
If any filter evaluates to True, the entry will be excluded.
|
If any filter evaluates to True, the entry will be excluded.
|
||||||
|
|
@ -29,6 +30,8 @@ class FilterExcludeOptions(ListFormatterValidator, OptionsValidator):
|
||||||
{ %contains( %lower(description), '#short' ) }
|
{ %contains( %lower(description), '#short' ) }
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
_inner_list_type = BooleanFormatterValidator
|
||||||
|
|
||||||
|
|
||||||
class FilterExcludePlugin(Plugin[FilterExcludeOptions]):
|
class FilterExcludePlugin(Plugin[FilterExcludeOptions]):
|
||||||
plugin_options_type = FilterExcludeOptions
|
plugin_options_type = FilterExcludeOptions
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,14 @@ from ytdl_sub.config.validators.options import OptionsValidator
|
||||||
from ytdl_sub.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_sub.utils.exceptions import StringFormattingException
|
from ytdl_sub.utils.exceptions import StringFormattingException
|
||||||
from ytdl_sub.utils.logger import Logger
|
from ytdl_sub.utils.logger import Logger
|
||||||
from ytdl_sub.validators.string_formatter_validators import ListFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import BooleanFormatterValidator
|
||||||
|
from ytdl_sub.validators.validators import ListValidator
|
||||||
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
||||||
|
|
||||||
logger = Logger.get("filter-include")
|
logger = Logger.get("filter-include")
|
||||||
|
|
||||||
|
|
||||||
class FilterIncludeOptions(ListFormatterValidator, OptionsValidator):
|
class FilterIncludeOptions(ListValidator[BooleanFormatterValidator], OptionsValidator):
|
||||||
"""
|
"""
|
||||||
Applies a conditional AND on any number of filters comprised of either variables or scripts.
|
Applies a conditional AND on any number of filters comprised of either variables or scripts.
|
||||||
If all filters evaluate to True, the entry will be included.
|
If all filters evaluate to True, the entry will be included.
|
||||||
|
|
@ -37,6 +38,8 @@ class FilterIncludeOptions(ListFormatterValidator, OptionsValidator):
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
_inner_list_type = BooleanFormatterValidator
|
||||||
|
|
||||||
|
|
||||||
class FilterIncludePlugin(Plugin[FilterIncludeOptions]):
|
class FilterIncludePlugin(Plugin[FilterIncludeOptions]):
|
||||||
plugin_options_type = FilterIncludeOptions
|
plugin_options_type = FilterIncludeOptions
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,13 @@ class StandardizedDateValidator(StringFormatterValidator):
|
||||||
return resolved
|
return resolved
|
||||||
|
|
||||||
|
|
||||||
|
class BooleanFormatterValidator(StringFormatterValidator):
|
||||||
|
_expected_value_type_name = "boolean"
|
||||||
|
|
||||||
|
def post_process(self, resolved: Any) -> bool:
|
||||||
|
return ScriptUtils.bool_formatter_output(output=str(resolved))
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=line-too-long
|
# pylint: disable=line-too-long
|
||||||
class OverridesStringFormatterValidator(StringFormatterValidator):
|
class OverridesStringFormatterValidator(StringFormatterValidator):
|
||||||
"""
|
"""
|
||||||
|
|
@ -154,7 +161,9 @@ class OverridesFloatFormatterValidator(FloatFormatterValidator, OverridesStringF
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
class OverridesBooleanFormatterValidator(OverridesStringFormatterValidator):
|
class OverridesBooleanFormatterValidator(
|
||||||
|
BooleanFormatterValidator, OverridesStringFormatterValidator
|
||||||
|
):
|
||||||
_expected_value_type_name = "boolean"
|
_expected_value_type_name = "boolean"
|
||||||
|
|
||||||
def post_process(self, resolved: Any) -> bool:
|
def post_process(self, resolved: Any) -> bool:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue