From 526ef90298e963e66f023f57260bdb43636cdc38 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Wed, 20 Sep 2023 08:09:58 -0700 Subject: [PATCH] [BUGFIX] Fix `date_range` plugin as a match-filter --- src/ytdl_sub/plugins/date_range.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ytdl_sub/plugins/date_range.py b/src/ytdl_sub/plugins/date_range.py index ca86e27b..b59b9a52 100644 --- a/src/ytdl_sub/plugins/date_range.py +++ b/src/ytdl_sub/plugins/date_range.py @@ -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