aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/mangadex.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/mangadex.py')
-rw-r--r--gallery_dl/extractor/mangadex.py48
1 files changed, 24 insertions, 24 deletions
diff --git a/gallery_dl/extractor/mangadex.py b/gallery_dl/extractor/mangadex.py
index 0a1709d..12e5f8d 100644
--- a/gallery_dl/extractor/mangadex.py
+++ b/gallery_dl/extractor/mangadex.py
@@ -66,7 +66,7 @@ class MangadexExtractor(Extractor):
"title" : cattributes["title"],
"volume" : text.parse_int(cattributes["volume"]),
"chapter" : text.parse_int(chnum),
- "chapter_minor": f"{sep}{minor}",
+ "chapter_minor": sep + minor,
"chapter_id": chapter["id"],
"date" : self.parse_datetime_iso(cattributes["publishAt"]),
"group" : [group["attributes"]["name"]
@@ -83,8 +83,8 @@ class MangadexCoversExtractor(MangadexExtractor):
directory_fmt = ("{category}", "{manga}", "Covers")
filename_fmt = "{volume:>02}_{lang}.{extension}"
archive_fmt = "c_{cover_id}"
- pattern = (rf"{BASE_PATTERN}/(?:title|manga)/(?!follows|feed$)([0-9a-f-]+)"
- rf"(?:/[^/?#]+)?\?tab=art")
+ pattern = (BASE_PATTERN + r"/(?:title|manga)/(?!follows|feed$)([0-9a-f-]+)"
+ r"(?:/[^/?#]+)?\?tab=art")
example = ("https://mangadex.org/title"
"/01234567-89ab-cdef-0123-456789abcdef?tab=art")
@@ -96,7 +96,7 @@ class MangadexCoversExtractor(MangadexExtractor):
text.nameext_from_url(name, data)
data["cover_id"] = data["filename"]
yield Message.Directory, "", data
- yield Message.Url, f"{base}{name}", data
+ yield Message.Url, base + name, data
def _transform_cover(self, cover):
relationships = defaultdict(list)
@@ -117,7 +117,7 @@ class MangadexCoversExtractor(MangadexExtractor):
class MangadexChapterExtractor(MangadexExtractor):
"""Extractor for manga-chapters from mangadex.org"""
subcategory = "chapter"
- pattern = rf"{BASE_PATTERN}/chapter/([0-9a-f-]+)"
+ pattern = BASE_PATTERN + r"/chapter/([0-9a-f-]+)"
example = ("https://mangadex.org/chapter"
"/01234567-89ab-cdef-0123-456789abcdef")
@@ -148,15 +148,15 @@ class MangadexChapterExtractor(MangadexExtractor):
enum = util.enumerate_reversed if self.config(
"page-reverse") else enumerate
- for data["page"], page in enum(chapter[key], 1):
- text.nameext_from_url(page, data)
- yield Message.Url, f"{base}{page}", data
+ for data["page"], path in enum(chapter[key], 1):
+ text.nameext_from_url(path, data)
+ yield Message.Url, base + path, data
class MangadexMangaExtractor(MangadexExtractor):
"""Extractor for manga from mangadex.org"""
subcategory = "manga"
- pattern = rf"{BASE_PATTERN}/(?:title|manga)/(?!follows|feed$)([0-9a-f-]+)"
+ pattern = BASE_PATTERN + r"/(?:title|manga)/(?!follows|feed$)([0-9a-f-]+)"
example = ("https://mangadex.org/title"
"/01234567-89ab-cdef-0123-456789abcdef")
@@ -167,7 +167,7 @@ class MangadexMangaExtractor(MangadexExtractor):
class MangadexFeedExtractor(MangadexExtractor):
"""Extractor for chapters from your Updates Feed"""
subcategory = "feed"
- pattern = rf"{BASE_PATTERN}/titles?/feed$()"
+ pattern = BASE_PATTERN + r"/titles?/feed$()"
example = "https://mangadex.org/title/feed"
def chapters(self):
@@ -177,7 +177,7 @@ class MangadexFeedExtractor(MangadexExtractor):
class MangadexFollowingExtractor(MangadexExtractor):
"""Extractor for followed manga from your Library"""
subcategory = "following"
- pattern = rf"{BASE_PATTERN}/titles?/follows(?:\?([^#]+))?$"
+ pattern = BASE_PATTERN + r"/titles?/follows(?:\?([^#]+))?$"
example = "https://mangadex.org/title/follows"
items = MangadexExtractor._items_manga
@@ -189,8 +189,8 @@ class MangadexFollowingExtractor(MangadexExtractor):
class MangadexListExtractor(MangadexExtractor):
"""Extractor for mangadex MDLists"""
subcategory = "list"
- pattern = (rf"{BASE_PATTERN}"
- rf"/list/([0-9a-f-]+)(?:/[^/?#]*)?(?:\?tab=(\w+))?")
+ pattern = (BASE_PATTERN +
+ r"/list/([0-9a-f-]+)(?:/[^/?#]*)?(?:\?tab=(\w+))?")
example = ("https://mangadex.org/list"
"/01234567-89ab-cdef-0123-456789abcdef/NAME")
@@ -215,7 +215,7 @@ class MangadexListExtractor(MangadexExtractor):
class MangadexAuthorExtractor(MangadexExtractor):
"""Extractor for mangadex authors"""
subcategory = "author"
- pattern = rf"{BASE_PATTERN}/author/([0-9a-f-]+)"
+ pattern = BASE_PATTERN + r"/author/([0-9a-f-]+)"
example = ("https://mangadex.org/author"
"/01234567-89ab-cdef-0123-456789abcdef/NAME")
@@ -253,22 +253,22 @@ class MangadexAPI():
else text.ensure_http_scheme(server).rstrip("/"))
def athome_server(self, uuid):
- return self._call(f"/at-home/server/{uuid}")
+ return self._call("/at-home/server/" + uuid)
def author(self, uuid, manga=False):
params = {"includes[]": ("manga",)} if manga else None
- return self._call(f"/author/{uuid}", params)["data"]
+ return self._call("/author/" + uuid, params)["data"]
def chapter(self, uuid):
params = {"includes[]": ("scanlation_group",)}
- return self._call(f"/chapter/{uuid}", params)["data"]
+ return self._call("/chapter/" + uuid, params)["data"]
def covers_manga(self, uuid):
params = {"manga[]": uuid}
return self._pagination_covers("/cover", params)
def list(self, uuid):
- return self._call(f"/list/{uuid}", None, True)["data"]
+ return self._call("/list/" + uuid, None, True)["data"]
def list_feed(self, uuid):
return self._pagination_chapters(f"/list/{uuid}/feed", None, True)
@@ -276,7 +276,7 @@ class MangadexAPI():
@memcache(keyarg=1)
def manga(self, uuid):
params = {"includes[]": ("artist", "author")}
- return self._call(f"/manga/{uuid}", params)["data"]
+ return self._call("/manga/" + uuid, params)["data"]
def manga_author(self, uuid_author):
params = {"authorOrArtist": uuid_author}
@@ -339,17 +339,17 @@ class MangadexAPI():
_refresh_token_cache.update(
(username, "personal"), data["refresh_token"])
- return f"Bearer {access_token}"
+ return "Bearer " + access_token
@cache(maxage=900, keyarg=1)
def _authenticate_impl_legacy(self, username, password):
if refresh_token := _refresh_token_cache(username):
self.extractor.log.info("Refreshing access token")
- url = f"{self.root}/auth/refresh"
+ url = self.root + "/auth/refresh"
json = {"token": refresh_token}
else:
self.extractor.log.info("Logging in as %s", username)
- url = f"{self.root}/auth/login"
+ url = self.root + "/auth/login"
json = {"username": username, "password": password}
self.extractor.log.debug("Using legacy login method")
@@ -360,10 +360,10 @@ class MangadexAPI():
if refresh_token != data["token"]["refresh"]:
_refresh_token_cache.update(username, data["token"]["refresh"])
- return f"Bearer {data['token']['session']}"
+ return "Bearer " + data["token"]["session"]
def _call(self, endpoint, params=None, auth=False):
- url = f"{self.root}{endpoint}"
+ url = self.root + endpoint
headers = self.headers_auth if auth else self.headers
while True: