diff options
| author | 2025-01-12 21:27:05 -0500 | |
|---|---|---|
| committer | 2025-01-12 21:27:05 -0500 | |
| commit | 0532a387ef5b7fcb4507a9b094dca37a5f635fe1 (patch) | |
| tree | 81a387ac9407dff42faffd3a7ad29971ac23671d /gallery_dl/extractor/pixiv.py | |
| parent | 63b6119a44afe2be9563acffd72aa974bb9d7f17 (diff) | |
New upstream version 1.28.4.upstream/1.28.4
Diffstat (limited to 'gallery_dl/extractor/pixiv.py')
| -rw-r--r-- | gallery_dl/extractor/pixiv.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/gallery_dl/extractor/pixiv.py b/gallery_dl/extractor/pixiv.py index 6207bf7..d3e40ee 100644 --- a/gallery_dl/extractor/pixiv.py +++ b/gallery_dl/extractor/pixiv.py @@ -111,6 +111,7 @@ class PixivExtractor(Extractor): { "url" : img["image_urls"]["original"], "suffix": "_p{:02}".format(num), + "_fallback": self._fallback_image(img), } for num, img in enumerate(meta_pages) ] @@ -128,7 +129,7 @@ class PixivExtractor(Extractor): self.log.warning("%s: 'My pixiv' locked", work["id"]) elif work["type"] != "ugoira": - return ({"url": url},) + return ({"url": url, "_fallback": self._fallback_image(url)},) elif self.load_ugoira: try: @@ -269,6 +270,24 @@ class PixivExtractor(Extractor): except exception.HttpError: pass + def _fallback_image(self, src): + if isinstance(src, str): + urls = None + orig = src + else: + urls = src["image_urls"] + orig = urls["original"] + + base = orig.rpartition(".")[0] + yield base.replace("-original/", "-master/", 1) + "_master1200.jpg" + + if urls is None: + return + + for fmt in ("large", "medium", "square_medium"): + if fmt in urls: + yield urls[fmt] + @staticmethod def _date_from_url(url, offset=timedelta(hours=9)): try: |
