aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/util.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2024-09-28 20:01:25 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2024-09-28 20:01:25 -0400
commit1a457ed68769880ab7760e0746f0cbbd9ca00487 (patch)
treea5e2f36fa6537e24a7a8851dab900ea03efdbd00 /gallery_dl/util.py
parent1f3ffe32342852fd9ea9e7704022488f3a1222bd (diff)
New upstream version 1.27.5.upstream/1.27.5
Diffstat (limited to 'gallery_dl/util.py')
-rw-r--r--gallery_dl/util.py34
1 files changed, 30 insertions, 4 deletions
diff --git a/gallery_dl/util.py b/gallery_dl/util.py
index ecb496d..128f48b 100644
--- a/gallery_dl/util.py
+++ b/gallery_dl/util.py
@@ -218,18 +218,34 @@ def to_string(value):
def datetime_to_timestamp(dt):
- """Convert naive UTC datetime to timestamp"""
+ """Convert naive UTC datetime to Unix timestamp"""
return (dt - EPOCH) / SECOND
def datetime_to_timestamp_string(dt):
- """Convert naive UTC datetime to timestamp string"""
+ """Convert naive UTC datetime to Unix timestamp string"""
try:
return str((dt - EPOCH) // SECOND)
except Exception:
return ""
+if sys.hexversion < 0x30c0000:
+ # Python <= 3.11
+ datetime_utcfromtimestamp = datetime.datetime.utcfromtimestamp
+ datetime_utcnow = datetime.datetime.utcnow
+ datetime_from_timestamp = datetime_utcfromtimestamp
+else:
+ # Python >= 3.12
+ def datetime_from_timestamp(ts=None):
+ """Convert Unix timestamp to naive UTC datetime"""
+ Y, m, d, H, M, S, _, _, _ = time.gmtime(ts)
+ return datetime.datetime(Y, m, d, H, M, S)
+
+ datetime_utcfromtimestamp = datetime_from_timestamp
+ datetime_utcnow = datetime_from_timestamp
+
+
def json_default(obj):
if isinstance(obj, CustomNone):
return None
@@ -516,6 +532,15 @@ class LazyPrompt():
return getpass.getpass()
+class NullContext():
+
+ def __enter__(self):
+ return None
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ pass
+
+
class CustomNone():
"""None-style type that supports more operations than regular None"""
__slots__ = ()
@@ -760,8 +785,9 @@ def build_extractor_filter(categories, negate=True, special=None):
if catsub:
def test(extr):
for category, subcategory in catsub:
- if category in (extr.category, extr.basecategory) and \
- subcategory == extr.subcategory:
+ if subcategory == extr.subcategory and (
+ category == extr.category or
+ category == extr.basecategory):
return not negate
return negate
tests.append(test)