diff --git a/gallery_dl/extractor/8muses.py b/gallery_dl/extractor/8muses.py index dfc34224..7cb6eee9 100644 --- a/gallery_dl/extractor/8muses.py +++ b/gallery_dl/extractor/8muses.py @@ -85,8 +85,7 @@ class _8musesAlbumExtractor(Extractor): "parent" : text.parse_int(album["parentId"]), "views" : text.parse_int(album["numberViews"]), "likes" : text.parse_int(album["numberLikes"]), - "date" : self.parse_datetime( - album["updatedAt"], "%Y-%m-%dT%H:%M:%S.%fZ"), + "date" : self.parse_datetime_iso(album["updatedAt"]), } def _unobfuscate(self, data): diff --git a/gallery_dl/extractor/ao3.py b/gallery_dl/extractor/ao3.py index 49a8fa75..7ee528a4 100644 --- a/gallery_dl/extractor/ao3.py +++ b/gallery_dl/extractor/ao3.py @@ -182,10 +182,10 @@ class Ao3WorkExtractor(Ao3Extractor): extr('
', "
")), "lang" : extr('
', "
"), - "date" : self.parse_datetime( - extr('
', "<"), "%Y-%m-%d"), - "date_completed": self.parse_datetime( - extr('>Completed:
', "<"), "%Y-%m-%d"), + "date" : self.parse_datetime_iso(extr( + '
', "<")), + "date_completed": self.parse_datetime_iso(extr( + '>Completed:
', "<")), "date_updated" : self.parse_timestamp( path.rpartition("updated_at=")[2]), "words" : text.parse_int( diff --git a/gallery_dl/extractor/arcalive.py b/gallery_dl/extractor/arcalive.py index 94e49988..51f54aa8 100644 --- a/gallery_dl/extractor/arcalive.py +++ b/gallery_dl/extractor/arcalive.py @@ -49,8 +49,7 @@ class ArcalivePostExtractor(ArcaliveExtractor): files = self._extract_files(post) post["count"] = len(files) - post["date"] = self.parse_datetime( - post["createdAt"][:19], "%Y-%m-%dT%H:%M:%S") + post["date"] = self.parse_datetime_iso(post["createdAt"][:19]) post["post_url"] = post_url = \ f"{self.root}/b/{post['boardSlug']}/{post['id']}" post["_http_headers"] = {"Referer": post_url + "?p=1"} diff --git a/gallery_dl/extractor/artstation.py b/gallery_dl/extractor/artstation.py index 9a14f5e8..c332ab21 100644 --- a/gallery_dl/extractor/artstation.py +++ b/gallery_dl/extractor/artstation.py @@ -126,8 +126,7 @@ class ArtstationExtractor(Extractor): data["title"] = text.unescape(data["title"]) data["description"] = text.unescape(text.remove_html( data["description"])) - data["date"] = self.parse_datetime( - data["created_at"], "%Y-%m-%dT%H:%M:%S.%f%z") + data["date"] = self.parse_datetime_iso(data["created_at"]) assets = data["assets"] del data["assets"] diff --git a/gallery_dl/extractor/batoto.py b/gallery_dl/extractor/batoto.py index 7495751b..0d35540c 100644 --- a/gallery_dl/extractor/batoto.py +++ b/gallery_dl/extractor/batoto.py @@ -167,8 +167,7 @@ class BatotoMangaExtractor(BatotoBase, MangaExtractor): data["chapter"] = text.parse_int(chapter) data["chapter_minor"] = sep + minor - data["date"] = self.parse_datetime( - extr('time="', '"'), "%Y-%m-%dT%H:%M:%S.%fZ") + data["date"] = self.parse_datetime_iso(extr('time="', '"')) url = f"{self.root}/title/{href}" results.append((url, data.copy())) diff --git a/gallery_dl/extractor/bluesky.py b/gallery_dl/extractor/bluesky.py index f1fd2eee..d314a28b 100644 --- a/gallery_dl/extractor/bluesky.py +++ b/gallery_dl/extractor/bluesky.py @@ -135,8 +135,7 @@ class BlueskyExtractor(Extractor): post["instance"] = self.instance post["post_id"] = self._pid(post) - post["date"] = self.parse_datetime( - post["createdAt"][:19], "%Y-%m-%dT%H:%M:%S") + post["date"] = self.parse_datetime_iso(post["createdAt"][:19]) def _extract_files(self, post): if "embed" not in post: diff --git a/gallery_dl/extractor/booth.py b/gallery_dl/extractor/booth.py index 17679da0..0be05c42 100644 --- a/gallery_dl/extractor/booth.py +++ b/gallery_dl/extractor/booth.py @@ -70,8 +70,7 @@ class BoothItemExtractor(BoothExtractor): url + ".json", headers=headers, interval=False) item["booth_category"] = item.pop("category", None) - item["date"] = self.parse_datetime( - item["published_at"], "%Y-%m-%dT%H:%M:%S.%f%z") + item["date"] = self.parse_datetime_iso(item["published_at"]) item["tags"] = [t["name"] for t in item["tags"]] shop = item["shop"] diff --git a/gallery_dl/extractor/chevereto.py b/gallery_dl/extractor/chevereto.py index 465da8dd..e58a4d7b 100644 --- a/gallery_dl/extractor/chevereto.py +++ b/gallery_dl/extractor/chevereto.py @@ -79,8 +79,7 @@ class CheveretoImageExtractor(CheveretoExtractor): "url" : url, "album": text.remove_html(extr( "Added to ").rpartition(">")[2]), - "date" : self.parse_datetime(extr( - '', "—"), "album": text.remove_html(extr( "Added to ").rpartition(">")[2]), - "date" : self.parse_datetime(extr( - '
', '<'), "uploader" : extr('
', '
'), - "date" : self.parse_datetime(extr( - '>Posted:', ''), "%Y-%m-%d %H:%M"), + "date" : self.parse_datetime_iso(extr( + '>Posted:', '')), "parent" : extr( '>Parent:"), - "date" : self.parse_datetime(extr( - ' 19: date_string = date_string[:19] - return self.parse_datetime(date_string, "%Y-%m-%dT%H:%M:%S") + return self.parse_datetime_iso(date_string) def _revisions(self, posts): return itertools.chain.from_iterable( diff --git a/gallery_dl/extractor/lensdump.py b/gallery_dl/extractor/lensdump.py index 1f81407d..5435c99f 100644 --- a/gallery_dl/extractor/lensdump.py +++ b/gallery_dl/extractor/lensdump.py @@ -119,8 +119,7 @@ class LensdumpImageExtractor(LensdumpBase, Extractor): 'property="image:width" content="', '"')), "height": text.parse_int(extr( 'property="image:height" content="', '"')), - "date" : self.parse_datetime(extr( - '", "<")), "size": text.parse_bytes(extr("", "")), - "date": self.parse_datetime( - extr("", "").strip(), "%Y-%m-%d %H:%M"), + "date": self.parse_datetime_iso(extr("", "").strip()), }) if self.config("chapter-reverse"): diff --git a/gallery_dl/extractor/manganelo.py b/gallery_dl/extractor/manganelo.py index 75ef0ab1..3d88b2d0 100644 --- a/gallery_dl/extractor/manganelo.py +++ b/gallery_dl/extractor/manganelo.py @@ -50,10 +50,10 @@ class ManganeloChapterExtractor(ManganeloExtractor, ChapterExtractor): extr = text.extract_from(page) data = { - "date" : self.parse_datetime(extr( - '"datePublished": "', '"')[:19], "%Y-%m-%dT%H:%M:%S"), - "date_updated": self.parse_datetime(extr( - '"dateModified": "', '"')[:19], "%Y-%m-%dT%H:%M:%S"), + "date" : self.parse_datetime_iso(extr( + '"datePublished": "', '"')[:19]), + "date_updated": self.parse_datetime_iso(extr( + '"dateModified": "', '"')[:19]), "manga_id" : text.parse_int(extr("comic_id =", ";")), "chapter_id" : text.parse_int(extr("chapter_id =", ";")), "manga" : extr("comic_name =", ";").strip('" '), diff --git a/gallery_dl/extractor/mangataro.py b/gallery_dl/extractor/mangataro.py index 77c07743..029bc2e9 100644 --- a/gallery_dl/extractor/mangataro.py +++ b/gallery_dl/extractor/mangataro.py @@ -40,10 +40,8 @@ class MangataroChapterExtractor(MangataroBase, ChapterExtractor): "chapter_minor": str(round(minor, 5))[1:] if minor else "", "chapter_id" : text.parse_int(chapter_id), "chapter_url" : comic["url"], - "date" : self.parse_datetime( - comic["datePublished"], "%Y-%m-%dT%H:%M:%S%z"), - "date_updated" : self.parse_datetime( - comic["dateModified"], "%Y-%m-%dT%H:%M:%S%z"), + "date" : self.parse_datetime_iso(comic["datePublished"]), + "date_updated" : self.parse_datetime_iso(comic["dateModified"]), } def images(self, page): diff --git a/gallery_dl/extractor/misskey.py b/gallery_dl/extractor/misskey.py index f58560c8..628f7e3f 100644 --- a/gallery_dl/extractor/misskey.py +++ b/gallery_dl/extractor/misskey.py @@ -48,13 +48,11 @@ class MisskeyExtractor(BaseExtractor): note["instance"] = self.instance note["instance_remote"] = note["user"]["host"] note["count"] = len(files) - note["date"] = self.parse_datetime( - note["createdAt"], "%Y-%m-%dT%H:%M:%S.%f%z") + note["date"] = self.parse_datetime_iso(note["createdAt"]) yield Message.Directory, note for note["num"], file in enumerate(files, 1): - file["date"] = self.parse_datetime( - file["createdAt"], "%Y-%m-%dT%H:%M:%S.%f%z") + file["date"] = self.parse_datetime_iso(file["createdAt"]) note["file"] = file url = file["url"] yield Message.Url, url, text.nameext_from_url(url, note) diff --git a/gallery_dl/extractor/naverchzzk.py b/gallery_dl/extractor/naverchzzk.py index 55fbf75e..e1dc1362 100644 --- a/gallery_dl/extractor/naverchzzk.py +++ b/gallery_dl/extractor/naverchzzk.py @@ -38,10 +38,10 @@ class NaverChzzkExtractor(Extractor): for data["num"], file in enumerate(files, 1): if extra := file.get("extraJson"): file.update(util.json_loads(extra)) - file["date"] = self.parse_datetime( - file["createdDate"], "%Y-%m-%dT%H:%M:%S.%f%z") - file["date_updated"] = self.parse_datetime( - file["updatedDate"], "%Y-%m-%dT%H:%M:%S.%f%z") + file["date"] = self.parse_datetime_iso( + file["createdDate"]) + file["date_updated"] = self.parse_datetime_iso( + file["updatedDate"]) data["file"] = file url = file["attachValue"] yield Message.Url, url, text.nameext_from_url(url, data) diff --git a/gallery_dl/extractor/nekohouse.py b/gallery_dl/extractor/nekohouse.py index 77298b0f..f865cbe1 100644 --- a/gallery_dl/extractor/nekohouse.py +++ b/gallery_dl/extractor/nekohouse.py @@ -59,8 +59,8 @@ class NekohousePostExtractor(NekohouseExtractor): 'class="scrape__user-name', '")[2].strip()), "title" : text.unescape(extr( 'class="scrape__title', '")[2]), - "date" : self.parse_datetime(extr( - 'datetime="', '"')[:19], "%Y-%m-%d %H:%M:%S"), + "date" : self.parse_datetime_iso(extr( + 'datetime="', '"')[:19]), "content": text.unescape(extr( 'class="scrape__content">', "
").strip()), } diff --git a/gallery_dl/extractor/nozomi.py b/gallery_dl/extractor/nozomi.py index b4ef1741..6a78a47a 100644 --- a/gallery_dl/extractor/nozomi.py +++ b/gallery_dl/extractor/nozomi.py @@ -9,7 +9,7 @@ """Extractors for https://nozomi.la/""" from .common import Extractor, Message -from .. import text +from .. import text, dt def decode_nozomi(n): @@ -49,10 +49,9 @@ class NozomiExtractor(Extractor): post["character"] = self._list(post.get("character")) try: - post["date"] = self.parse_datetime( - post["date"] + ":00", "%Y-%m-%d %H:%M:%S%z") + post["date"] = dt.parse_iso(post["date"] + ":00") except Exception: - post["date"] = None + post["date"] = dt.NONE post.update(data) diff --git a/gallery_dl/extractor/paheal.py b/gallery_dl/extractor/paheal.py index cf73db83..c87a69e7 100644 --- a/gallery_dl/extractor/paheal.py +++ b/gallery_dl/extractor/paheal.py @@ -53,8 +53,7 @@ class PahealExtractor(Extractor): extr("Source Link<", ""), "href='", "'")), } diff --git a/gallery_dl/extractor/patreon.py b/gallery_dl/extractor/patreon.py index b4f0cdc4..760a7e1d 100644 --- a/gallery_dl/extractor/patreon.py +++ b/gallery_dl/extractor/patreon.py @@ -177,8 +177,7 @@ class PatreonExtractor(Extractor): post, included, "attachments") attr["attachments_media"] = self._files( post, included, "attachments_media") - attr["date"] = self.parse_datetime( - attr["published_at"], "%Y-%m-%dT%H:%M:%S.%f%z") + attr["date"] = self.parse_datetime_iso(attr["published_at"]) try: attr["campaign"] = (included["campaign"][ @@ -226,8 +225,7 @@ class PatreonExtractor(Extractor): user = response.json()["data"] attr = user["attributes"] attr["id"] = user["id"] - attr["date"] = self.parse_datetime( - attr["created"], "%Y-%m-%dT%H:%M:%S.%f%z") + attr["date"] = self.parse_datetime_iso(attr["created"]) return attr def _collection(self, collection_id): @@ -236,8 +234,7 @@ class PatreonExtractor(Extractor): coll = data["data"] attr = coll["attributes"] attr["id"] = coll["id"] - attr["date"] = self.parse_datetime( - attr["created_at"], "%Y-%m-%dT%H:%M:%S.%f%z") + attr["date"] = self.parse_datetime_iso(attr["created_at"]) return attr def _filename(self, url): diff --git a/gallery_dl/extractor/pexels.py b/gallery_dl/extractor/pexels.py index ca482cc6..34dbcbd0 100644 --- a/gallery_dl/extractor/pexels.py +++ b/gallery_dl/extractor/pexels.py @@ -35,8 +35,7 @@ class PexelsExtractor(Extractor): post["type"] = attr["type"] post.update(metadata) - post["date"] = self.parse_datetime( - post["created_at"][:-5], "%Y-%m-%dT%H:%M:%S") + post["date"] = self.parse_datetime_iso(post["created_at"][:-5]) if "image" in post: url, _, query = post["image"]["download_link"].partition("?") diff --git a/gallery_dl/extractor/philomena.py b/gallery_dl/extractor/philomena.py index 9407acd2..7665250a 100644 --- a/gallery_dl/extractor/philomena.py +++ b/gallery_dl/extractor/philomena.py @@ -36,8 +36,7 @@ class PhilomenaExtractor(BooruExtractor): return url def _prepare(self, post): - post["date"] = self.parse_datetime( - post["created_at"][:19], "%Y-%m-%dT%H:%M:%S") + post["date"] = self.parse_datetime_iso(post["created_at"][:19]) BASE_PATTERN = PhilomenaExtractor.update({ diff --git a/gallery_dl/extractor/photovogue.py b/gallery_dl/extractor/photovogue.py index 6b38a983..16d9a7f5 100644 --- a/gallery_dl/extractor/photovogue.py +++ b/gallery_dl/extractor/photovogue.py @@ -29,8 +29,7 @@ class PhotovogueUserExtractor(Extractor): for photo in self.photos(): url = photo["gallery_image"] photo["title"] = photo["title"].strip() - photo["date"] = self.parse_datetime( - photo["date"], "%Y-%m-%dT%H:%M:%S.%f%z") + photo["date"] = self.parse_datetime_iso(photo["date"]) yield Message.Directory, photo yield Message.Url, url, text.nameext_from_url(url, photo) diff --git a/gallery_dl/extractor/picarto.py b/gallery_dl/extractor/picarto.py index a5168aa6..3c49452b 100644 --- a/gallery_dl/extractor/picarto.py +++ b/gallery_dl/extractor/picarto.py @@ -29,8 +29,7 @@ class PicartoGalleryExtractor(Extractor): def items(self): for post in self.posts(): - post["date"] = self.parse_datetime( - post["created_at"], "%Y-%m-%d %H:%M:%S") + post["date"] = self.parse_datetime_iso(post["created_at"]) variations = post.pop("variations", ()) yield Message.Directory, post diff --git a/gallery_dl/extractor/piczel.py b/gallery_dl/extractor/piczel.py index becdb327..3f43a499 100644 --- a/gallery_dl/extractor/piczel.py +++ b/gallery_dl/extractor/piczel.py @@ -26,8 +26,7 @@ class PiczelExtractor(Extractor): def items(self): for post in self.posts(): post["tags"] = [t["title"] for t in post["tags"] if t["title"]] - post["date"] = self.parse_datetime( - post["created_at"], "%Y-%m-%dT%H:%M:%S.%f%z") + post["date"] = self.parse_datetime_iso(post["created_at"]) if post["multi"]: images = post["images"] diff --git a/gallery_dl/extractor/pillowfort.py b/gallery_dl/extractor/pillowfort.py index ed535180..637b0b9a 100644 --- a/gallery_dl/extractor/pillowfort.py +++ b/gallery_dl/extractor/pillowfort.py @@ -48,8 +48,7 @@ class PillowfortExtractor(Extractor): for url in inline(post["content"]): files.append({"url": url}) - post["date"] = self.parse_datetime( - post["created_at"], "%Y-%m-%dT%H:%M:%S.%f%z") + post["date"] = self.parse_datetime_iso(post["created_at"]) post["post_id"] = post.pop("id") post["count"] = len(files) yield Message.Directory, post @@ -76,8 +75,7 @@ class PillowfortExtractor(Extractor): if "id" not in file: post["id"] = post["hash"] if "created_at" in file: - post["date"] = self.parse_datetime( - file["created_at"], "%Y-%m-%dT%H:%M:%S.%f%z") + post["date"] = self.parse_datetime_iso(file["created_at"]) yield msgtype, url, post diff --git a/gallery_dl/extractor/pixeldrain.py b/gallery_dl/extractor/pixeldrain.py index 78b004c7..6df855e6 100644 --- a/gallery_dl/extractor/pixeldrain.py +++ b/gallery_dl/extractor/pixeldrain.py @@ -24,10 +24,6 @@ class PixeldrainExtractor(Extractor): if api_key := self.config("api-key"): self.session.auth = util.HTTPBasicAuth("", api_key) - def _parse_datetime(self, date_string): - return self.parse_datetime( - date_string, "%Y-%m-%dT%H:%M:%S.%fZ") - class PixeldrainFileExtractor(PixeldrainExtractor): """Extractor for pixeldrain files""" diff --git a/gallery_dl/extractor/pornhub.py b/gallery_dl/extractor/pornhub.py index 38905351..fbe14dd5 100644 --- a/gallery_dl/extractor/pornhub.py +++ b/gallery_dl/extractor/pornhub.py @@ -150,8 +150,7 @@ class PornhubGifExtractor(PornhubExtractor): "tags" : extr("data-context-tag='", "'").split(","), "title": extr('"name": "', '"'), "url" : extr('"contentUrl": "', '"'), - "date" : self.parse_datetime( - extr('"uploadDate": "', '"'), "%Y-%m-%d"), + "date" : self.parse_datetime_iso(extr('"uploadDate": "', '"')), "viewkey" : extr('From this video: ' '', '<'), diff --git a/gallery_dl/extractor/rule34vault.py b/gallery_dl/extractor/rule34vault.py index b5681207..74d79d3f 100644 --- a/gallery_dl/extractor/rule34vault.py +++ b/gallery_dl/extractor/rule34vault.py @@ -36,8 +36,7 @@ class Rule34vaultExtractor(BooruExtractor): def _prepare(self, post): post.pop("files", None) - post["date"] = self.parse_datetime( - post["created"], "%Y-%m-%dT%H:%M:%S.%fZ") + post["date"] = self.parse_datetime_iso(post["created"]) if "tags" in post: post["tags"] = [t["value"] for t in post["tags"]] diff --git a/gallery_dl/extractor/rule34xyz.py b/gallery_dl/extractor/rule34xyz.py index bd60d01c..8174313a 100644 --- a/gallery_dl/extractor/rule34xyz.py +++ b/gallery_dl/extractor/rule34xyz.py @@ -68,8 +68,7 @@ class Rule34xyzExtractor(BooruExtractor): def _prepare(self, post): post.pop("files", None) - post["date"] = self.parse_datetime( - post["created"], "%Y-%m-%dT%H:%M:%S.%fZ") + post["date"] = self.parse_datetime_iso(post["created"]) post["filename"], _, post["format"] = post["filename"].rpartition(".") if "tags" in post: post["tags"] = [t["value"] for t in post["tags"]] diff --git a/gallery_dl/extractor/s3ndpics.py b/gallery_dl/extractor/s3ndpics.py index 687dbe38..87d91a6f 100644 --- a/gallery_dl/extractor/s3ndpics.py +++ b/gallery_dl/extractor/s3ndpics.py @@ -30,10 +30,8 @@ class S3ndpicsExtractor(Extractor): for post in self.posts(): post["id"] = post.pop("_id", None) post["user"] = post.pop("userId", None) - post["date"] = self.parse_datetime( - post["createdAt"], "%Y-%m-%dT%H:%M:%S.%fZ") - post["date_updated"] = self.parse_datetime( - post["updatedAt"], "%Y-%m-%dT%H:%M:%S.%fZ") + post["date"] = self.parse_datetime_iso(post["createdAt"]) + post["date_updated"] = self.parse_datetime_iso(post["updatedAt"]) files = post.pop("files", ()) post["count"] = len(files) diff --git a/gallery_dl/extractor/slideshare.py b/gallery_dl/extractor/slideshare.py index b104e873..1bb70ed9 100644 --- a/gallery_dl/extractor/slideshare.py +++ b/gallery_dl/extractor/slideshare.py @@ -39,8 +39,8 @@ class SlidesharePresentationExtractor(GalleryExtractor): "description" : slideshow["description"].strip(), "views" : slideshow["views"], "likes" : slideshow["likes"], - "date" : self.parse_datetime( - slideshow["createdAt"], "%Y-%m-%d %H:%M:%S %Z"), + "date" : self.parse_datetime_iso( + slideshow["createdAt"][:19]), } def images(self, page): diff --git a/gallery_dl/extractor/szurubooru.py b/gallery_dl/extractor/szurubooru.py index 197012f0..2bf4a61e 100644 --- a/gallery_dl/extractor/szurubooru.py +++ b/gallery_dl/extractor/szurubooru.py @@ -57,8 +57,7 @@ class SzurubooruExtractor(booru.BooruExtractor): return url def _prepare(self, post): - post["date"] = self.parse_datetime( - post["creationTime"], "%Y-%m-%dT%H:%M:%S.%fZ") + post["date"] = self.parse_datetime_iso(post["creationTime"]) tags = [] tags_categories = collections.defaultdict(list) diff --git a/gallery_dl/extractor/thehentaiworld.py b/gallery_dl/extractor/thehentaiworld.py index aed22836..47cc4329 100644 --- a/gallery_dl/extractor/thehentaiworld.py +++ b/gallery_dl/extractor/thehentaiworld.py @@ -56,8 +56,7 @@ class ThehentaiworldExtractor(Extractor): "id" : text.parse_int(extr(" postid-", " ")), "slug" : extr(" post-", '"'), "tags" : extr('id="tagsHead">', ""), - "date" : self.parse_datetime(extr( - "
  • Posted: ", "<"), "%Y-%m-%d"), + "date" : self.parse_datetime_iso(extr("
  • Posted: ", "<")), } if (c := url[27]) == "v": diff --git a/gallery_dl/extractor/twibooru.py b/gallery_dl/extractor/twibooru.py index ec862fe2..4558e212 100644 --- a/gallery_dl/extractor/twibooru.py +++ b/gallery_dl/extractor/twibooru.py @@ -37,8 +37,7 @@ class TwibooruExtractor(BooruExtractor): return post["view_url"] def _prepare(self, post): - post["date"] = self.parse_datetime( - post["created_at"], "%Y-%m-%dT%H:%M:%S.%fZ") + post["date"] = self.parse_datetime_iso(post["created_at"]) if "name" in post: name, sep, rest = post["name"].rpartition(".") @@ -146,8 +145,8 @@ class TwibooruAPI(): return response.json() if response.status_code == 429: - until = self.parse_datetime( - response.headers["X-RL-Reset"], "%Y-%m-%d %H:%M:%S %Z") + until = self.parse_datetime_iso( + response.headers["X-RL-Reset"][:19]) # wait an extra minute, just to be safe self.extractor.wait(until=until, adjust=60.0) continue diff --git a/gallery_dl/extractor/vanillarock.py b/gallery_dl/extractor/vanillarock.py index e0834b62..a6a10ff3 100644 --- a/gallery_dl/extractor/vanillarock.py +++ b/gallery_dl/extractor/vanillarock.py @@ -47,8 +47,8 @@ class VanillarockPostExtractor(VanillarockExtractor): "count": len(imgs), "title": text.unescape(name), "path" : self.path.strip("/"), - "date" : self.parse_datetime(extr( - '
    ', '
    '), "%Y-%m-%d %H:%M"), + "date" : self.parse_datetime_iso(extr( + '
    ', '
    ')), "tags" : text.split_html(extr( '
    ', '
    '))[::2], } diff --git a/gallery_dl/extractor/wallhaven.py b/gallery_dl/extractor/wallhaven.py index 861d0c99..623de8bf 100644 --- a/gallery_dl/extractor/wallhaven.py +++ b/gallery_dl/extractor/wallhaven.py @@ -43,8 +43,7 @@ class WallhavenExtractor(Extractor): wp["url"] = wp.pop("path") if "tags" in wp: wp["tags"] = [t["name"] for t in wp["tags"]] - wp["date"] = self.parse_datetime( - wp.pop("created_at"), "%Y-%m-%d %H:%M:%S") + wp["date"] = self.parse_datetime_iso(wp.pop("created_at")) wp["width"] = wp.pop("dimension_x") wp["height"] = wp.pop("dimension_y") wp["wh_category"] = wp["category"] diff --git a/gallery_dl/extractor/weebcentral.py b/gallery_dl/extractor/weebcentral.py index cddceb76..c5496e32 100644 --- a/gallery_dl/extractor/weebcentral.py +++ b/gallery_dl/extractor/weebcentral.py @@ -127,8 +127,8 @@ class WeebcentralMangaExtractor(WeebcentralBase, MangaExtractor): "chapter" : text.parse_int(chapter), "chapter_minor": sep + minor, "chapter_type" : type, - "date" : self.parse_datetime( - extr(' datetime="', '"')[:-5], "%Y-%m-%dT%H:%M:%S"), + "date" : self.parse_datetime_iso(extr( + ' datetime="', '"')[:-5]), } chapter.update(data) results.append((base + chapter_id, chapter)) diff --git a/gallery_dl/extractor/wikifeet.py b/gallery_dl/extractor/wikifeet.py index 7c168e9e..a07fd840 100644 --- a/gallery_dl/extractor/wikifeet.py +++ b/gallery_dl/extractor/wikifeet.py @@ -34,8 +34,8 @@ class WikifeetGalleryExtractor(GalleryExtractor): "celeb" : self.celeb, "type" : self.type, "birthplace": text.unescape(extr('"bplace":"', '"')), - "birthday" : self.parse_datetime(text.unescape( - extr('"bdate":"', '"'))[:10], "%Y-%m-%d"), + "birthday" : self.parse_datetime_iso(text.unescape(extr( + '"bdate":"', '"'))[:10]), "shoesize" : text.unescape(extr('"ssize":', ',')), "rating" : text.parse_float(extr('"score":', ',')), "celebrity" : text.unescape(extr('"cname":"', '"')), diff --git a/gallery_dl/extractor/wikimedia.py b/gallery_dl/extractor/wikimedia.py index 83220889..040e4f6a 100644 --- a/gallery_dl/extractor/wikimedia.py +++ b/gallery_dl/extractor/wikimedia.py @@ -75,8 +75,7 @@ class WikimediaExtractor(BaseExtractor): for m in image["commonmetadata"] or ()} text.nameext_from_url(image["canonicaltitle"].partition(":")[2], image) - image["date"] = self.parse_datetime( - image["timestamp"], "%Y-%m-%dT%H:%M:%SZ") + image["date"] = self.parse_datetime_iso(image["timestamp"]) def items(self): for info in self._pagination(self.params): diff --git a/gallery_dl/extractor/yiffverse.py b/gallery_dl/extractor/yiffverse.py index 33640fc1..f1073ed6 100644 --- a/gallery_dl/extractor/yiffverse.py +++ b/gallery_dl/extractor/yiffverse.py @@ -55,8 +55,7 @@ class YiffverseExtractor(BooruExtractor): def _prepare(self, post): post.pop("files", None) - post["date"] = self.parse_datetime( - post["created"], "%Y-%m-%dT%H:%M:%S.%fZ") + post["date"] = self.parse_datetime_iso(post["created"]) post["filename"], _, post["format"] = post["filename"].rpartition(".") if "tags" in post: post["tags"] = [t["value"] for t in post["tags"]]