diff --git a/setup.cfg b/setup.cfg index fc70f98..6868f2b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = yt-dlp-FixupMtime -version = 1.1.0 +version = 1.1.1 [options] packages = find_namespace: diff --git a/test/test_fixup_mtime.py b/test/test_fixup_mtime.py index 967be83..4359dbc 100644 --- a/test/test_fixup_mtime.py +++ b/test/test_fixup_mtime.py @@ -33,6 +33,12 @@ def setUp(self): def tearDown(self): shutil.rmtree(self.temp_dir) + def test__striptime_or_none_with_none_timestamp(self): + timestamp = None + format_code = self.pp._mtime_format + expected = None + self.assertEqual(self.pp._strptime_or_none(timestamp, format_code), expected) + def test__strptime_or_none_with_invalid_timestamp(self): timestamp = 'foobar' format_code = self.pp._mtime_format diff --git a/yt_dlp_plugins/postprocessor/fixup_mtime.py b/yt_dlp_plugins/postprocessor/fixup_mtime.py index 4b1086c..d03ddd4 100644 --- a/yt_dlp_plugins/postprocessor/fixup_mtime.py +++ b/yt_dlp_plugins/postprocessor/fixup_mtime.py @@ -19,7 +19,9 @@ def __init__(self, downloader=None, mtime_key: str = 'mtime', mtime_format: str self._mtime_key = mtime_key self._mtime_format = re.sub(r'%%', '%', mtime_format) - def _strptime_or_none(self, timestamp: Union[float, int, str], format_code: str) -> Optional[datetime.datetime]: + def _strptime_or_none(self, timestamp: Union[float, int, str, None], format_code: str) -> Optional[datetime.datetime]: + if timestamp is None: + return None if isinstance(timestamp, (float, int)): return datetime.datetime.fromtimestamp(timestamp, datetime.timezone.utc) for code in [format_code] + date_formats(day_first=True):