23 lines
853 B
Python
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
|