[pp:mtime] fix '_mtime_meta' for invalid values (#8918)
fixes regression introduced in d57dc48dcd
also prevents previous _mtime_meta entries from affecting new files
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2019-2022 Mike Fährmann
|
# Copyright 2019-2026 Mike Fährmann
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License version 2 as
|
# it under the terms of the GNU General Public License version 2 as
|
||||||
@@ -30,15 +30,14 @@ class MtimePP(PostProcessor):
|
|||||||
job.register_hooks({event: self.run for event in events}, options)
|
job.register_hooks({event: self.run for event in events}, options)
|
||||||
|
|
||||||
def run(self, pathfmt):
|
def run(self, pathfmt):
|
||||||
mtime = self._get(pathfmt.kwdict)
|
if mtime := self._get(pathfmt.kwdict):
|
||||||
if mtime is None:
|
if isinstance(mtime, dt.datetime):
|
||||||
return
|
mtime = dt.to_ts(mtime)
|
||||||
|
else:
|
||||||
pathfmt.kwdict["_mtime_meta"] = (
|
mtime = text.parse_int(mtime)
|
||||||
dt.to_ts(mtime)
|
else:
|
||||||
if isinstance(mtime, dt.datetime) else
|
mtime = None
|
||||||
text.parse_int(mtime)
|
pathfmt.kwdict["_mtime_meta"] = mtime
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
__postprocessor__ = MtimePP
|
__postprocessor__ = MtimePP
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
# it under the terms of the GNU General Public License version 2 as
|
# it under the terms of the GNU General Public License version 2 as
|
||||||
# published by the Free Software Foundation.
|
# published by the Free Software Foundation.
|
||||||
|
|
||||||
__version__ = "1.31.4"
|
__version__ = "1.31.5-dev"
|
||||||
__variant__ = None
|
__variant__ = None
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from datetime import datetime
|
|||||||
|
|
||||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
from gallery_dl import extractor, output, path, util, exception # noqa E402
|
from gallery_dl import extractor, output, path, util, exception # noqa E402
|
||||||
from gallery_dl import postprocessor, config, archive # noqa E402
|
from gallery_dl import postprocessor, config, archive, dt # noqa E402
|
||||||
from gallery_dl.postprocessor.common import PostProcessor # noqa E402
|
from gallery_dl.postprocessor.common import PostProcessor # noqa E402
|
||||||
|
|
||||||
|
|
||||||
@@ -931,12 +931,22 @@ class MtimeTest(BasePostprocessorTest):
|
|||||||
def test_mtime_none(self):
|
def test_mtime_none(self):
|
||||||
self._create(None, {"date": None})
|
self._create(None, {"date": None})
|
||||||
self._trigger()
|
self._trigger()
|
||||||
self.assertNotIn("_mtime_meta", self.pathfmt.kwdict)
|
self.assertFalse(self.pathfmt.kwdict["_mtime_meta"])
|
||||||
|
|
||||||
|
def test_mtime_none_dt(self):
|
||||||
|
self._create(None, {"date": dt.NONE})
|
||||||
|
self._trigger()
|
||||||
|
self.assertFalse(self.pathfmt.kwdict["_mtime_meta"])
|
||||||
|
|
||||||
def test_mtime_undefined(self):
|
def test_mtime_undefined(self):
|
||||||
self._create(None, {})
|
self._create(None, {})
|
||||||
self._trigger()
|
self._trigger()
|
||||||
self.assertNotIn("_mtime_meta", self.pathfmt.kwdict)
|
self.assertFalse(self.pathfmt.kwdict["_mtime_meta"])
|
||||||
|
|
||||||
|
def test_mtime_invalid(self):
|
||||||
|
self._create(None, {"date": "foobar"})
|
||||||
|
self._trigger()
|
||||||
|
self.assertFalse(self.pathfmt.kwdict["_mtime_meta"])
|
||||||
|
|
||||||
def test_mtime_key(self):
|
def test_mtime_key(self):
|
||||||
self._create({"key": "foo"}, {"foo": 315532800})
|
self._create({"key": "foo"}, {"foo": 315532800})
|
||||||
|
|||||||
Reference in New Issue
Block a user