diff options
| author | 2025-12-20 05:49:11 -0500 | |
|---|---|---|
| committer | 2025-12-20 05:49:11 -0500 | |
| commit | c586ea4b3c871f5696626f9820e8c88a4e78f4a6 (patch) | |
| tree | e6d7bae96282c3d147159f091d451e53bdaa2efe /gallery_dl/extractor/picazor.py | |
| parent | 01a2bf622c31072d1322884584404b9bd59b28cc (diff) | |
| parent | a24ec1647aeac35a63b744ea856011ad6e06be3b (diff) | |
Update upstream source from tag 'upstream/1.31.1'
Update to upstream version '1.31.1'
with Debian dir b5d91c25143175f933b1c69c7e82249cd7e145ab
Diffstat (limited to 'gallery_dl/extractor/picazor.py')
| -rw-r--r-- | gallery_dl/extractor/picazor.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/gallery_dl/extractor/picazor.py b/gallery_dl/extractor/picazor.py new file mode 100644 index 0000000..df1f436 --- /dev/null +++ b/gallery_dl/extractor/picazor.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- + +# 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 +# published by the Free Software Foundation. + +"""Extractors for https://picazor.com/""" + +from .common import Extractor, Message +from .. import text + + +class PicazorUserExtractor(Extractor): + """Extractor for picazor users""" + category = "picazor" + subcategory = "user" + root = "https://picazor.com" + browser = "firefox" + directory_fmt = ("{category}", "{user}") + filename_fmt = "{id}_{num:>03}.{extension}" + archive_fmt = "{id}_{num}" + pattern = r"(?:https?://)?(?:www\.)?picazor\.com/[a-z]{2}/([^/?#]+)" + example = "https://picazor.com/en/USERNAME" + + def items(self): + user = self.groups[0] + first = True + + url = f"{self.root}/api/files/{user}/sfiles" + params = {"page": 1} + headers = {"Referer": f"{self.root}/en/{user}"} + + while True: + data = self.request_json(url, params=params, headers=headers) + if not data: + break + + for item in data: + path = item.get("path") + if not path: + continue + + if first: + first = False + self.kwdict["user"] = user + self.kwdict["count"] = item.get("order") + yield Message.Directory, "", { + "subject": item.get("subject"), + "user" : user, + } + + item.pop("blurDataURL", None) + item["num"] = item["order"] + + file_url = self.root + path + text.nameext_from_url(file_url, item) + yield Message.Url, file_url, item + + params["page"] += 1 |
