[BUGFIX] Fix date_range plugin as a match-filter

This commit is contained in:
Jesse Bannon 2023-09-20 08:09:58 -07:00
parent 1a118e225a
commit 526ef90298

View file

@ -2,6 +2,8 @@ from typing import List
from typing import Optional
from typing import Tuple
from yt_dlp.utils import datetime_from_str
from ytdl_sub.config.plugin import Plugin
from ytdl_sub.config.preset_options import OptionsDictValidator
from ytdl_sub.validators.string_datetime import StringDatetimeValidator
@ -47,6 +49,10 @@ class DateRangeOptions(OptionsDictValidator):
class DateRangePlugin(Plugin[DateRangeOptions]):
plugin_options_type = DateRangeOptions
def _to_date(self, date_validator: StringDatetimeValidator) -> str:
date_str = self.overrides.apply_formatter(formatter=date_validator)
return str(datetime_from_str(date_str).date())
def ytdl_options_match_filters(self) -> Tuple[List[str], List[str]]:
"""
Returns
@ -57,11 +63,11 @@ class DateRangePlugin(Plugin[DateRangeOptions]):
breaking_match_filters: List[str] = []
if self.plugin_options.before:
before_str = self.overrides.apply_formatter(formatter=self.plugin_options.before)
match_filters.append(f"upload_date < {before_str}")
match_filters.append(f"upload_date < {self._to_date(self.plugin_options.before)}")
if self.plugin_options.after:
after_str = self.overrides.apply_formatter(formatter=self.plugin_options.after)
breaking_match_filters.append(f"upload_date >= {after_str}")
breaking_match_filters.append(
f"upload_date >= {self._to_date(self.plugin_options.after)}"
)
return match_filters, breaking_match_filters