From 04e4ffc64c06b1eda79d99a9d30a81f64664db1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Wed, 14 Feb 2024 22:07:29 +0100 Subject: [PATCH] [deviantart] combine 'png' option with 'quality' (#4846) "quality": "png" to download PNGs instead og JPEGs --- docs/configuration.rst | 18 ++++-------------- gallery_dl/extractor/deviantart.py | 16 ++++++---------- test/results/deviantart.py | 4 ++-- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/docs/configuration.rst b/docs/configuration.rst index 14600c39..aace7d75 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -1506,17 +1506,6 @@ Description * ``"manual"``: Disregard ``has_more`` and only stop when a batch of results is empty. -extractor.deviantart.png ------------------------- -Type - ``bool`` -Default - ``false`` -Description - Download the PNG version of images - for which an original file download is not available. - - extractor.deviantart.public --------------------------- Type @@ -1533,14 +1522,15 @@ Description extractor.deviantart.quality ---------------------------- Type - ``integer`` + * ``integer`` + * ``string`` Default ``100`` Description - JPEG quality level of newer images for which + JPEG quality level of images for which an original file download is not available. - Note: Only has an effect when `deviantart.jwt `__ is disabled. + Set this to ``"png"`` to download a PNG version of these images instead. extractor.deviantart.refresh-token diff --git a/gallery_dl/extractor/deviantart.py b/gallery_dl/extractor/deviantart.py index cbc97d3c..0cf4f885 100644 --- a/gallery_dl/extractor/deviantart.py +++ b/gallery_dl/extractor/deviantart.py @@ -43,7 +43,6 @@ class DeviantartExtractor(Extractor): def _init(self): self.jwt = self.config("jwt", False) - self.png = self.config("png", False) self.flat = self.config("flat", True) self.extra = self.config("extra", False) self.quality = self.config("quality", "100") @@ -63,12 +62,12 @@ class DeviantartExtractor(Extractor): self.unwatch = None if self.quality: - self.quality = ",q_{}".format(self.quality) - self.quality_sub = re.compile(r",q_\d+").sub - - if self.png: - self.png = "-fullview.png?" - self.png_sub = re.compile(r"-fullview\.[a-z0-9]+\?").sub + if self.quality == "png": + self.quality = "-fullview.png?" + self.quality_sub = re.compile(r"-fullview\.[a-z0-9]+\?").sub + else: + self.quality = ",q_{}".format(self.quality) + self.quality_sub = re.compile(r",q_\d+").sub if self.original != "image": self._update_content = self._update_content_default @@ -350,9 +349,6 @@ class DeviantartExtractor(Extractor): if self.quality: content["src"] = self.quality_sub( self.quality, content["src"], 1) - if self.png: - content["src"] = self.png_sub( - self.png, content["src"], 1) return content diff --git a/test/results/deviantart.py b/test/results/deviantart.py index 1d5153aa..60182890 100644 --- a/test/results/deviantart.py +++ b/test/results/deviantart.py @@ -758,11 +758,11 @@ __tests__ = ( "#comment" : "'png' option (#4846)", "#category": ("", "deviantart", "deviation"), "#class" : deviantart.DeviantartDeviationExtractor, - "#options" : {"png": True, "intermediary": False}, + "#options" : {"quality": "png", "intermediary": False}, "#sha1_content": "75fb92a820b154c061f7e1f9935260577b2365ec", "#pattern" : r"https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com" r"/f/d86d1faa-37a8-4bcb-b421-53331885d763/dafo6q1-5c4c999a-019e-4845-8c29-6fab2d05c8e8\.jpg" - r"/v1/fill/w_1024,h_1297,q_100,strp" + r"/v1/fill/w_1024,h_1297,q_75,strp" r"/crimson_pandaren_phoenix_world_of_warcraft_by_colibriworkshop_dafo6q1-fullview\.png" r"\?token=ey.+",