[deviantart] combine 'png' option with 'quality' (#4846)

"quality": "png" to download PNGs instead og JPEGs
This commit is contained in:
Mike Fährmann
2024-02-14 22:07:29 +01:00
parent 9cc4ec2c58
commit 04e4ffc64c
3 changed files with 12 additions and 26 deletions

View File

@@ -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 <extractor.deviantart.jwt_>`__ is disabled.
Set this to ``"png"`` to download a PNG version of these images instead.
extractor.deviantart.refresh-token

View File

@@ -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

View File

@@ -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.+",