ytdl-sub/src/ytdl_sub/utils/datetime.py

31 lines
756 B
Python

from typing import Optional
from yt_dlp import DateRange
from ytdl_sub.config.preset_options import Overrides
from ytdl_sub.validators.string_datetime import StringDatetimeValidator
def to_date_range(
before: Optional[StringDatetimeValidator],
after: Optional[StringDatetimeValidator],
overrides: Overrides,
) -> Optional[DateRange]:
"""
Returns
-------
Date range if the 'before' or 'after' is defined. None otherwise.
"""
start: Optional[str] = None
end: Optional[str] = None
if after:
start = overrides.apply_formatter(formatter=after)
if before:
end = overrides.apply_formatter(formatter=before)
if start or end:
return DateRange(start=start, end=end)
return None