aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/mangadex.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2024-12-02 00:32:05 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2024-12-02 00:32:05 -0500
commit7c235d96e2417306334cd93517a2723039a5a0b5 (patch)
treecd29cbb34195d8f384237d70a3f8e7405827496a /gallery_dl/extractor/mangadex.py
parentc68fa03f6af81fc1a23a7021fe28e73bacf71f66 (diff)
parent1981ccaaea6eab2cf32536ec5afe132a870914d8 (diff)
Update upstream source from tag 'upstream/1.28.0'
Update to upstream version '1.28.0' with Debian dir d2219dc8130062139eee5a8e4e0da3dc60db3a4e
Diffstat (limited to 'gallery_dl/extractor/mangadex.py')
-rw-r--r--gallery_dl/extractor/mangadex.py35
1 files changed, 22 insertions, 13 deletions
diff --git a/gallery_dl/extractor/mangadex.py b/gallery_dl/extractor/mangadex.py
index 1f24593..7f87cff 100644
--- a/gallery_dl/extractor/mangadex.py
+++ b/gallery_dl/extractor/mangadex.py
@@ -26,6 +26,7 @@ class MangadexExtractor(Extractor):
"{manga}_c{chapter:>03}{chapter_minor}_{page:>03}.{extension}")
archive_fmt = "{chapter_id}_{page}"
root = "https://mangadex.org"
+ useragent = util.USERAGENT
_cache = {}
def __init__(self, match):
@@ -33,7 +34,6 @@ class MangadexExtractor(Extractor):
self.uuid = match.group(1)
def _init(self):
- self.session.headers["User-Agent"] = util.USERAGENT
self.api = MangadexAPI(self)
def items(self):
@@ -221,7 +221,7 @@ class MangadexAPI():
return self._call("/list/" + uuid)["data"]
def list_feed(self, uuid):
- return self._pagination("/list/" + uuid + "/feed")
+ return self._pagination_chapters("/list/" + uuid + "/feed")
@memcache(keyarg=1)
def manga(self, uuid):
@@ -230,7 +230,7 @@ class MangadexAPI():
def manga_author(self, uuid_author):
params = {"authorOrArtist": uuid_author}
- return self._pagination("/manga", params)
+ return self._pagination_manga("/manga", params)
def manga_feed(self, uuid):
order = "desc" if self.extractor.config("chapter-reverse") else "asc"
@@ -238,11 +238,11 @@ class MangadexAPI():
"order[volume]" : order,
"order[chapter]": order,
}
- return self._pagination("/manga/" + uuid + "/feed", params)
+ return self._pagination_chapters("/manga/" + uuid + "/feed", params)
def user_follows_manga_feed(self):
params = {"order[publishAt]": "desc"}
- return self._pagination("/user/follows/manga/feed", params)
+ return self._pagination_chapters("/user/follows/manga/feed", params)
def authenticate(self):
self.headers["Authorization"] = \
@@ -289,22 +289,31 @@ class MangadexAPI():
raise exception.StopExtraction(
"%s %s (%s)", response.status_code, response.reason, msg)
- def _pagination(self, endpoint, params=None):
+ def _pagination_chapters(self, endpoint, params=None):
if params is None:
params = {}
+ lang = self.extractor.config("lang")
+ if isinstance(lang, str) and "," in lang:
+ lang = lang.split(",")
+ params["translatedLanguage[]"] = lang
+ params["includes[]"] = ("scanlation_group",)
+
+ return self._pagination(endpoint, params)
+
+ def _pagination_manga(self, endpoint, params=None):
+ if params is None:
+ params = {}
+
+ return self._pagination(endpoint, params)
+
+ def _pagination(self, endpoint, params):
config = self.extractor.config
+
ratings = config("ratings")
if ratings is None:
ratings = ("safe", "suggestive", "erotica", "pornographic")
-
- lang = config("lang")
- if isinstance(lang, str) and "," in lang:
- lang = lang.split(",")
-
params["contentRating[]"] = ratings
- params["translatedLanguage[]"] = lang
- params["includes[]"] = ("scanlation_group",)
params["offset"] = 0
api_params = config("api-parameters")