[mangadex] add 'data-saver' option (#8573)

This commit is contained in:
Mike Fährmann
2025-11-19 09:37:56 +01:00
parent aa39770783
commit 89be2f45e4
4 changed files with 36 additions and 6 deletions

View File

@@ -4032,6 +4032,16 @@ Description
and `/user/follows/manga/feed <https://api.mangadex.org/docs/swagger.html#/Feed/get-user-follows-manga-feed>`__)
extractor.mangadex.data-saver
-----------------------------
Type
``bool``
Default
``false``
Description
Enable `Data Saver` mode and download lower quality versions of chapters.
extractor.mangadex.lang
-----------------------
Type

View File

@@ -530,6 +530,7 @@
"api-server": "https://api.mangadex.org",
"api-parameters": null,
"data-saver": false,
"lang": null,
"ratings": ["safe", "suggestive", "erotica", "pornographic"]
},

View File

@@ -136,13 +136,19 @@ class MangadexChapterExtractor(MangadexExtractor):
yield Message.Directory, data
if self.config("data-saver", False):
path = "data-saver"
key = "dataSaver"
else:
path = key = "data"
server = self.api.athome_server(self.uuid)
chapter = server["chapter"]
base = f"{server['baseUrl']}/data/{chapter['hash']}/"
base = f"{server['baseUrl']}/{path}/{chapter['hash']}/"
enum = util.enumerate_reversed if self.config(
"page-reverse") else enumerate
for data["page"], page in enum(chapter["data"], 1):
for data["page"], page in enum(chapter[key], 1):
text.nameext_from_url(page, data)
yield Message.Url, f"{base}{page}", data

View File

@@ -100,7 +100,7 @@ __tests__ = (
"ap" : "souten-no-koumori",
"kt" : "2065",
"mal": "948",
"mu" : "4786",
"mu" : "opk9cgi",
},
},
@@ -118,6 +118,19 @@ __tests__ = (
"#exception": exception.AbortExtraction,
},
{
"#url" : "https://mangadex.org/chapter/f946ac53-0b71-4b5d-aeb2-7931b13c4aaa",
"#class" : mangadex.MangadexChapterExtractor,
"#options" : {"data-saver": True},
"#results" : (
"https://cmdxd98sb0x3yprd.mangadex.network/data-saver/2780e594c3519e6858f76dfc018c8c1a/x1-d5962a0770b39faf73154b428be473752b4c379020916ecb5f0ffeac9639b6bf.jpg",
"https://cmdxd98sb0x3yprd.mangadex.network/data-saver/2780e594c3519e6858f76dfc018c8c1a/x2-c9fcaf38888e38c48ff3cff0e2b342f68b7aaed2ea9e2a2a5446dc49b6a4d86e.jpg",
"https://cmdxd98sb0x3yprd.mangadex.network/data-saver/2780e594c3519e6858f76dfc018c8c1a/x3-9ea5e06a4ba27b37dd66b75f1d267e3a6f8d21bb14a0163f669cf7f40ede315f.jpg",
"https://cmdxd98sb0x3yprd.mangadex.network/data-saver/2780e594c3519e6858f76dfc018c8c1a/x4-605c869a362a19d016d7fb777908c9336fec995965cb59853cb7f9b3e128f70e.jpg",
"https://cmdxd98sb0x3yprd.mangadex.network/data-saver/2780e594c3519e6858f76dfc018c8c1a/x5-dc40bd2b45d0ce26c7a401d74c2006a239f5839bc4f4a55893d035d6819627d7.jpg",
),
},
{
"#url" : "https://mangadex.org/title/f90c4398-8aad-4f51-8a1f-024ca09fdcbc",
"#comment" : "mutliple values for 'lang' (#4093)",
@@ -286,7 +299,7 @@ __tests__ = (
"#url" : "https://mangadex.org/title/192aa767-2479-42c1-9780-8d65a2efd36a/gachiakuta?tab=art",
"#class" : mangadex.MangadexCoversExtractor,
"#pattern" : r"https://mangadex\.org/covers/192aa767-2479-42c1-9780-8d65a2efd36a/[\w-]+\.jpg",
"#count" : 19,
"#count" : 20,
"artist" : ["Urana Kei"],
"author" : ["Urana Kei"],
@@ -296,10 +309,10 @@ __tests__ = (
"extension" : {"jpg", "png"},
"filename" : str,
"lang" : {"ja", "fa"},
"manga" : "Gachiakuta",
"manga" : "GACHIAKUTA",
"manga_id" : "192aa767-2479-42c1-9780-8d65a2efd36a",
"status" : "ongoing",
"volume" : range(1, 16),
"volume" : range(1, 20),
"tags" : [
"Monsters",
"Action",