ytdl-sub/ytdl_subscribe/validators/date_range_validator.py
2022-04-22 23:16:35 +00:00

23 lines
853 B
Python

from typing import Optional
from yt_dlp import DateRange
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
from ytdl_subscribe.validators.string_datetime import StringDatetimeValidator
class DateRangeValidator(StrictDictValidator):
_optional_keys = {"before", "after"}
def __init__(self, name, value):
super().__init__(name, value)
self.before = self._validate_key_if_present("before", StringDatetimeValidator)
self.after = self._validate_key_if_present("after", StringDatetimeValidator)
def get_date_range(self) -> Optional[DateRange]:
if self.before or self.after:
return DateRange(
start=self.after.datetime_str if self.after else None,
end=self.before.datetime_str if self.before else None,
)
return None