diff --git a/gallery_dl/extractor/2ch.py b/gallery_dl/extractor/2ch.py index 4e9a13fe..e2903f9d 100644 --- a/gallery_dl/extractor/2ch.py +++ b/gallery_dl/extractor/2ch.py @@ -27,7 +27,7 @@ class _2chThreadExtractor(Extractor): def items(self): url = f"{self.root}/{self.board}/res/{self.thread}.json" - posts = self.request(url).json()["threads"][0]["posts"] + posts = self.request_json(url)["threads"][0]["posts"] op = posts[0] title = op.get("subject") or text.remove_html(op["comment"]) @@ -75,7 +75,7 @@ class _2chBoardExtractor(Extractor): # index page url = f"{base}/index.json" - index = self.request(url).json() + index = self.request_json(url) index["_extractor"] = _2chThreadExtractor for thread in index["threads"]: url = f"{base}/res/{thread['thread_num']}.html" @@ -84,7 +84,7 @@ class _2chBoardExtractor(Extractor): # pages 1..n for n in util.advance(index["pages"], 1): url = f"{base}/{n}.json" - page = self.request(url).json() + page = self.request_json(url) page["_extractor"] = _2chThreadExtractor for thread in page["threads"]: url = f"{base}/res/{thread['thread_num']}.html" diff --git a/gallery_dl/extractor/35photo.py b/gallery_dl/extractor/35photo.py index 2eeb5041..ec5f0cb6 100644 --- a/gallery_dl/extractor/35photo.py +++ b/gallery_dl/extractor/35photo.py @@ -49,14 +49,14 @@ class _35photoExtractor(Extractor): if extra_ids: yield from extra_ids while params["lastId"]: - data = self.request(url, headers=headers, params=params).json() + data = self.request_json(url, headers=headers, params=params) yield from self._photo_ids(data["data"]) params["lastId"] = data["lastId"] def _photo_data(self, photo_id): params = {"method": "photo.getData", "photoId": photo_id} - data = self.request( - "https://api.35photo.pro/", params=params).json()["data"][photo_id] + data = self.request_json( + "https://api.35photo.pro/", params=params)["data"][photo_id] info = { "url" : data["src"], "id" : data["photo_id"], diff --git a/gallery_dl/extractor/4chan.py b/gallery_dl/extractor/4chan.py index 1ab6b963..dcc42227 100644 --- a/gallery_dl/extractor/4chan.py +++ b/gallery_dl/extractor/4chan.py @@ -29,7 +29,7 @@ class _4chanThreadExtractor(Extractor): def items(self): url = f"https://a.4cdn.org/{self.board}/thread/{self.thread}.json" - posts = self.request(url).json()["posts"] + posts = self.request_json(url)["posts"] title = posts[0].get("sub") or text.remove_html(posts[0]["com"]) data = { @@ -62,7 +62,7 @@ class _4chanBoardExtractor(Extractor): def items(self): url = f"https://a.4cdn.org/{self.board}/threads.json" - threads = self.request(url).json() + threads = self.request_json(url) for page in threads: for thread in page["threads"]: diff --git a/gallery_dl/extractor/500px.py b/gallery_dl/extractor/500px.py index 967b5a8b..d1ac5034 100644 --- a/gallery_dl/extractor/500px.py +++ b/gallery_dl/extractor/500px.py @@ -72,7 +72,7 @@ class _500pxExtractor(Extractor): "x-csrf-token": self.cookies.get( "x-csrf-token", domain=".500px.com"), } - return self.request(url, headers=headers, params=params).json() + return self.request_json(url, headers=headers, params=params) def _request_graphql(self, opname, variables): url = "https://api.500px.com/graphql" @@ -85,8 +85,8 @@ class _500pxExtractor(Extractor): "variables" : util.json_dumps(variables), "query" : QUERIES[opname], } - return self.request( - url, method="POST", headers=headers, json=data).json()["data"] + return self.request_json( + url, method="POST", headers=headers, json=data)["data"] class _500pxUserExtractor(_500pxExtractor): diff --git a/gallery_dl/extractor/8chan.py b/gallery_dl/extractor/8chan.py index 29b4a4a8..03850676 100644 --- a/gallery_dl/extractor/8chan.py +++ b/gallery_dl/extractor/8chan.py @@ -80,7 +80,7 @@ class _8chanThreadExtractor(_8chanExtractor): # fetch thread data url = f"{self.root}/{board}/res/{thread}." self.session.headers["Referer"] = url + "html" - thread = self.request(url + "json").json() + thread = self.request_json(url + "json") thread["postId"] = thread["threadId"] thread["_http_headers"] = {"Referer": url + "html"} @@ -117,7 +117,7 @@ class _8chanBoardExtractor(_8chanExtractor): pnum = text.parse_int(pnum, 1) url = f"{self.root}/{board}/{pnum}.json" - data = self.request(url).json() + data = self.request_json(url) threads = data["threads"] while True: @@ -130,4 +130,4 @@ class _8chanBoardExtractor(_8chanExtractor): if pnum > data["pageCount"]: return url = f"{self.root}/{board}/{pnum}.json" - threads = self.request(url).json()["threads"] + threads = self.request_json(url)["threads"] diff --git a/gallery_dl/extractor/artstation.py b/gallery_dl/extractor/artstation.py index 42e2c4e8..6cd24e54 100644 --- a/gallery_dl/extractor/artstation.py +++ b/gallery_dl/extractor/artstation.py @@ -104,7 +104,7 @@ class ArtstationExtractor(Extractor): url = f"{self.root}/projects/{project_id}.json" try: - data = self.request(url).json() + data = self.request_json(url) except exception.HttpError as exc: self.log.warning(exc) return @@ -152,7 +152,7 @@ class ArtstationExtractor(Extractor): params["page"] = 1 while True: - data = self.request(url, **kwargs).json() + data = self.request_json(url, **kwargs) yield from data["data"] total += len(data["data"]) @@ -167,9 +167,8 @@ class ArtstationExtractor(Extractor): "Accept" : "*/*", "Origin" : self.root, } - return self.request( - url, method="POST", headers=headers, json={}, - ).json()["public_csrf_token"] + return self.request_json( + url, method="POST", headers=headers, json={})["public_csrf_token"] def _no_cache(self, url): """Cause a cache miss to prevent Cloudflare 'optimizations' @@ -269,8 +268,8 @@ class ArtstationCollectionExtractor(ArtstationExtractor): def metadata(self): url = f"{self.root}/collections/{self.collection_id}.json" params = {"username": self.user} - collection = self.request( - url, params=params, notfound="collection").json() + collection = self.request_json( + url, params=params, notfound="collection") return {"collection": collection, "user": self.user} def projects(self): @@ -290,8 +289,8 @@ class ArtstationCollectionsExtractor(ArtstationExtractor): url = self.root + "/collections.json" params = {"username": self.user} - for collection in self.request( - url, params=params, notfound="collections").json(): + for collection in self.request_json( + url, params=params, notfound="collections"): url = f"{self.root}/{self.user}/collections/{collection['id']}" collection["_extractor"] = ArtstationCollectionExtractor yield Message.Queue, url, collection @@ -320,7 +319,7 @@ class ArtstationChallengeExtractor(ArtstationExtractor): submission_url = f"{base}/submissions.json" update_url = f"{self.root}/contests/submission_updates.json" - challenge = self.request(challenge_url).json() + challenge = self.request_json(challenge_url) yield Message.Directory, {"challenge": challenge} params = {"sorting": self.sorting} diff --git a/gallery_dl/extractor/behance.py b/gallery_dl/extractor/behance.py index 3426f2aa..8ab7fc4a 100644 --- a/gallery_dl/extractor/behance.py +++ b/gallery_dl/extractor/behance.py @@ -45,8 +45,8 @@ class BehanceExtractor(Extractor): "variables": variables, } - return self.request(url, method="POST", headers=headers, - json=data).json()["data"] + return self.request_json( + url, method="POST", headers=headers, json=data)["data"] def _update(self, data): # compress data to simple lists diff --git a/gallery_dl/extractor/bilibili.py b/gallery_dl/extractor/bilibili.py index c38d7eec..95bf36a2 100644 --- a/gallery_dl/extractor/bilibili.py +++ b/gallery_dl/extractor/bilibili.py @@ -108,7 +108,7 @@ class BilibiliAPI(): def _call(self, endpoint, params): url = "https://api.bilibili.com/x/polymer/web-dynamic/v1" + endpoint - data = self.extractor.request(url, params=params).json() + data = self.extractor.request_json(url, params=params) if data["code"] != 0: self.extractor.log.debug("Server response: %s", data) @@ -159,7 +159,7 @@ class BilibiliAPI(): def login_user_id(self): url = "https://api.bilibili.com/x/space/v2/myinfo" - data = self.extractor.request(url).json() + data = self.extractor.request_json(url) if data["code"] != 0: self.extractor.log.debug("Server response: %s", data) diff --git a/gallery_dl/extractor/bluesky.py b/gallery_dl/extractor/bluesky.py index fb32df3c..2de8dd63 100644 --- a/gallery_dl/extractor/bluesky.py +++ b/gallery_dl/extractor/bluesky.py @@ -488,7 +488,7 @@ class BlueskyAPI(): url = "https://plc.directory/" + did try: - data = self.extractor.request(url).json() + data = self.extractor.request_json(url) for service in data["service"]: if service["type"] == "AtprotoPersonalDataServer": return service["serviceEndpoint"] diff --git a/gallery_dl/extractor/bunkr.py b/gallery_dl/extractor/bunkr.py index c084deed..da036387 100644 --- a/gallery_dl/extractor/bunkr.py +++ b/gallery_dl/extractor/bunkr.py @@ -180,8 +180,8 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor): referer = self.root_dl + "/file/" + data_id headers = {"Referer": referer, "Origin": self.root_dl} - data = self.request(self.endpoint, method="POST", headers=headers, - json={"id": data_id}).json() + data = self.request_json(self.endpoint, method="POST", headers=headers, + json={"id": data_id}) if data.get("encrypted"): key = f"SECRET_KEY_{data['timestamp'] // 3600}" diff --git a/gallery_dl/extractor/cien.py b/gallery_dl/extractor/cien.py index ea864121..7dfe6b67 100644 --- a/gallery_dl/extractor/cien.py +++ b/gallery_dl/extractor/cien.py @@ -144,12 +144,12 @@ class CienArticleExtractor(CienExtractor): "gallery_id": text.extr(gallery, ' gallery-id="', '"'), "time" : text.extr(gallery, ' time="', '"'), } - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) url = self.root + "/api/creator/gallery/imagePath" for params["page"], params["file_id"] in enumerate( data["imgList"]): - path = self.request(url, params=params).json()["path"] + path = self.request_json(url, params=params)["path"] file = params.copy() file["url"] = path diff --git a/gallery_dl/extractor/civitai.py b/gallery_dl/extractor/civitai.py index a12d058a..cb2667d5 100644 --- a/gallery_dl/extractor/civitai.py +++ b/gallery_dl/extractor/civitai.py @@ -854,8 +854,8 @@ class CivitaiSearchAPI(): url = self.root + endpoint params = util.json_dumps({"queries": (query,)}) - data = self.extractor.request( - url, method="POST", headers=self.headers, data=params).json() + data = self.extractor.request_json( + url, method="POST", headers=self.headers, data=params) return data["results"][0] diff --git a/gallery_dl/extractor/comicvine.py b/gallery_dl/extractor/comicvine.py index e24943fa..39397b9f 100644 --- a/gallery_dl/extractor/comicvine.py +++ b/gallery_dl/extractor/comicvine.py @@ -46,7 +46,7 @@ class ComicvineTagExtractor(BooruExtractor): } while True: - images = self.request(url, params=params).json()["images"] + images = self.request_json(url, params=params)["images"] yield from images if len(images) < self.per_page: diff --git a/gallery_dl/extractor/cyberdrop.py b/gallery_dl/extractor/cyberdrop.py index a547c4c5..b3944f78 100644 --- a/gallery_dl/extractor/cyberdrop.py +++ b/gallery_dl/extractor/cyberdrop.py @@ -61,8 +61,8 @@ class CyberdropAlbumExtractor(lolisafe.LolisafeAlbumExtractor): for file_id in file_ids: try: url = f"{self.root_api}/api/file/info/{file_id}" - file = self.request(url).json() - auth = self.request(file["auth_url"]).json() + file = self.request_json(url) + auth = self.request_json(file["auth_url"]) file["url"] = auth["url"] except Exception as exc: self.log.warning("%s (%s: %s)", diff --git a/gallery_dl/extractor/e621.py b/gallery_dl/extractor/e621.py index 8b7e17b7..1a5d8374 100644 --- a/gallery_dl/extractor/e621.py +++ b/gallery_dl/extractor/e621.py @@ -60,13 +60,13 @@ class E621Extractor(danbooru.DanbooruExtractor): yield Message.Url, file["url"], post def _get_notes(self, id): - return self.request( - f"{self.root}/notes.json?search[post_id]={id}").json() + return self.request_json( + f"{self.root}/notes.json?search[post_id]={id}") @memcache(keyarg=1) def _get_pools(self, ids): - pools = self.request( - f"{self.root}/pools.json?search[id]={ids}").json() + pools = self.request_json( + f"{self.root}/pools.json?search[id]={ids}") for pool in pools: pool["name"] = pool["name"].replace("_", " ") return pools @@ -127,7 +127,7 @@ class E621PostExtractor(E621Extractor, danbooru.DanbooruPostExtractor): def posts(self): url = f"{self.root}/posts/{self.groups[-1]}.json" - return (self.request(url).json()["post"],) + return (self.request_json(url)["post"],) class E621PopularExtractor(E621Extractor, danbooru.DanbooruPopularExtractor): diff --git a/gallery_dl/extractor/exhentai.py b/gallery_dl/extractor/exhentai.py index 63317c48..81c1de12 100644 --- a/gallery_dl/extractor/exhentai.py +++ b/gallery_dl/extractor/exhentai.py @@ -299,7 +299,7 @@ class ExhentaiGalleryExtractor(ExhentaiExtractor): "namespace": 1, } - data = self.request(self.api_url, method="POST", json=data).json() + data = self.request_json(self.api_url, method="POST", json=data) if "error" in data: raise exception.StopExtraction(data["error"]) @@ -351,7 +351,7 @@ class ExhentaiGalleryExtractor(ExhentaiExtractor): } for request["page"] in range(self.image_num + 1, self.count + 1): - page = self.request(api_url, method="POST", json=request).json() + page = self.request_json(api_url, method="POST", json=request) i3 = page["i3"] i6 = page["i6"] diff --git a/gallery_dl/extractor/fantia.py b/gallery_dl/extractor/fantia.py index 9a2b2146..e32a86b1 100644 --- a/gallery_dl/extractor/fantia.py +++ b/gallery_dl/extractor/fantia.py @@ -93,7 +93,7 @@ class FantiaExtractor(Extractor): def _get_post_data(self, post_id): """Fetch and process post data""" url = self.root+"/api/v1/posts/"+post_id - resp = self.request(url, headers=self.headers).json()["post"] + resp = self.request_json(url, headers=self.headers)["post"] return { "post_id": resp["id"], "post_url": self.root + "/posts/" + str(resp["id"]), diff --git a/gallery_dl/extractor/foolfuuka.py b/gallery_dl/extractor/foolfuuka.py index cfbb4d7a..97c2bd2a 100644 --- a/gallery_dl/extractor/foolfuuka.py +++ b/gallery_dl/extractor/foolfuuka.py @@ -159,7 +159,7 @@ class FoolfuukaThreadExtractor(FoolfuukaExtractor): def metadata(self): url = self.root + "/_/api/chan/thread/" params = {"board": self.board, "num": self.thread} - self.data = self.request(url, params=params).json()[self.thread] + self.data = self.request_json(url, params=params)[self.thread] return self.data["op"] def posts(self): @@ -243,7 +243,7 @@ class FoolfuukaSearchExtractor(FoolfuukaExtractor): while True: try: - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) except ValueError: return diff --git a/gallery_dl/extractor/furry34.py b/gallery_dl/extractor/furry34.py index 92307b36..a93ec752 100644 --- a/gallery_dl/extractor/furry34.py +++ b/gallery_dl/extractor/furry34.py @@ -74,7 +74,7 @@ class Furry34Extractor(BooruExtractor): def _fetch_post(self, post_id): url = f"{self.root}/api/v2/post/{post_id}" - return self.request(url).json() + return self.request_json(url) def _pagination(self, endpoint, params=None): url = f"{self.root}/api{endpoint}" @@ -86,7 +86,7 @@ class Furry34Extractor(BooruExtractor): threshold = self.per_page while True: - data = self.request(url, method="POST", json=params).json() + data = self.request_json(url, method="POST", json=params) yield from data["items"] diff --git a/gallery_dl/extractor/fuskator.py b/gallery_dl/extractor/fuskator.py index a34e4399..b7cf0c8a 100644 --- a/gallery_dl/extractor/fuskator.py +++ b/gallery_dl/extractor/fuskator.py @@ -39,9 +39,8 @@ class FuskatorGalleryExtractor(GalleryExtractor): "hash" : self.gallery_hash, "_" : int(time.time()), } - self.data = data = self.request( - self.root + "/ajax/gal.aspx", params=params, headers=headers, - ).json() + self.data = data = self.request_json( + self.root + "/ajax/gal.aspx", params=params, headers=headers) title = text.extr(page, "", "").strip() title, _, gallery_id = title.rpartition("#") diff --git a/gallery_dl/extractor/gelbooru.py b/gallery_dl/extractor/gelbooru.py index b4a2d011..4cde1da4 100644 --- a/gallery_dl/extractor/gelbooru.py +++ b/gallery_dl/extractor/gelbooru.py @@ -30,7 +30,7 @@ class GelbooruBase(): params["user_id"] = self.user_id url = self.root + "/index.php?page=dapi&q=index&json=1" - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) if not key: return data diff --git a/gallery_dl/extractor/gofile.py b/gallery_dl/extractor/gofile.py index 5d23925e..a1c49852 100644 --- a/gallery_dl/extractor/gofile.py +++ b/gallery_dl/extractor/gofile.py @@ -86,10 +86,9 @@ class GofileFolderExtractor(Extractor): return self._api_request("contents/" + content_id, params, headers) def _api_request(self, endpoint, params=None, headers=None, method="GET"): - response = self.request( + response = self.request_json( "https://api.gofile.io/" + endpoint, - method=method, params=params, headers=headers, - ).json() + method=method, params=params, headers=headers) if response["status"] != "ok": if response["status"] == "error-notFound": diff --git a/gallery_dl/extractor/hentaihand.py b/gallery_dl/extractor/hentaihand.py index 67121696..f4f9d861 100644 --- a/gallery_dl/extractor/hentaihand.py +++ b/gallery_dl/extractor/hentaihand.py @@ -44,7 +44,7 @@ class HentaihandGalleryExtractor(GalleryExtractor): return data def images(self, _): - info = self.request(self.page_url + "/images").json() + info = self.request_json(self.page_url + "/images") return [(img["source_url"], img) for img in info["images"]] @@ -69,7 +69,7 @@ class HentaihandTagExtractor(Extractor): tpl = self.type + "s" url = f"{self.root}/api/{tpl}/{self.key}" - tid = self.request(url, notfound=self.type).json()["id"] + tid = self.request_json(url, notfound=self.type)["id"] url = self.root + "/api/comics" params = { @@ -82,7 +82,7 @@ class HentaihandTagExtractor(Extractor): "duration": "day", } while True: - info = self.request(url, params=params).json() + info = self.request_json(url, params=params) for gallery in info["data"]: gurl = f"{self.root}/en/comic/{gallery['slug']}" diff --git a/gallery_dl/extractor/imagechest.py b/gallery_dl/extractor/imagechest.py index 4ebad882..3a94640e 100644 --- a/gallery_dl/extractor/imagechest.py +++ b/gallery_dl/extractor/imagechest.py @@ -97,7 +97,7 @@ class ImagechestUserExtractor(Extractor): while True: try: - data = self.request(url, params=params).json()["data"] + data = self.request_json(url, params=params)["data"] except (TypeError, KeyError): return diff --git a/gallery_dl/extractor/imgbb.py b/gallery_dl/extractor/imgbb.py index fd6b0554..e6abdeb9 100644 --- a/gallery_dl/extractor/imgbb.py +++ b/gallery_dl/extractor/imgbb.py @@ -112,7 +112,7 @@ class ImgbbExtractor(Extractor): params["page"] += 1 elif not seek or 'class="pagination-next"' not in page: return - data = self.request(endpoint, method="POST", data=params).json() + data = self.request_json(endpoint, method="POST", data=params) page = data["html"] diff --git a/gallery_dl/extractor/imgur.py b/gallery_dl/extractor/imgur.py index 88578b07..1ac76e0b 100644 --- a/gallery_dl/extractor/imgur.py +++ b/gallery_dl/extractor/imgur.py @@ -293,10 +293,9 @@ class ImgurAPI(): def _call(self, endpoint, params=None, headers=None): while True: try: - return self.extractor.request( + return self.extractor.request_json( "https://api.imgur.com" + endpoint, - params=params, headers=(headers or self.headers), - ).json() + params=params, headers=(headers or self.headers)) except exception.HttpError as exc: if exc.status not in (403, 429) or \ b"capacity" not in exc.response.content: diff --git a/gallery_dl/extractor/inkbunny.py b/gallery_dl/extractor/inkbunny.py index e92fef4d..be562a43 100644 --- a/gallery_dl/extractor/inkbunny.py +++ b/gallery_dl/extractor/inkbunny.py @@ -341,7 +341,7 @@ class InkbunnyAPI(): while True: params["sid"] = self.session_id - data = self.extractor.request(url, params=params).json() + data = self.extractor.request_json(url, params=params) if "error_code" not in data: return data @@ -378,7 +378,7 @@ def _authenticate_impl(api, username, password): url = "https://inkbunny.net/api_login.php" data = {"username": username, "password": password} - data = api.extractor.request(url, method="POST", data=data).json() + data = api.extractor.request_json(url, method="POST", data=data) if "sid" not in data: raise exception.AuthenticationError(data.get("error_message")) diff --git a/gallery_dl/extractor/instagram.py b/gallery_dl/extractor/instagram.py index 243133e3..e7a495ee 100644 --- a/gallery_dl/extractor/instagram.py +++ b/gallery_dl/extractor/instagram.py @@ -884,7 +884,7 @@ class InstagramRestAPI(): "Sec-Fetch-Mode" : "cors", "Sec-Fetch-Site" : "same-origin", } - return extr.request(url, **kwargs).json() + return extr.request_json(url, **kwargs) def _pagination(self, endpoint, params=None, media=False): if params is None: @@ -1047,7 +1047,7 @@ class InstagramGraphqlAPI(): "X-Requested-With": "XMLHttpRequest", "Referer" : extr.root + "/", } - return extr.request(url, params=params, headers=headers).json()["data"] + return extr.request_json(url, params=params, headers=headers)["data"] def _pagination(self, query_hash, variables, key_data="user", key_edge=None): diff --git a/gallery_dl/extractor/itchio.py b/gallery_dl/extractor/itchio.py index 2c2fd725..6312e58a 100644 --- a/gallery_dl/extractor/itchio.py +++ b/gallery_dl/extractor/itchio.py @@ -20,7 +20,7 @@ class ItchioGameExtractor(Extractor): directory_fmt = ("{category}", "{user[name]}") filename_fmt = "{game[title]} ({id}).{extension}" archive_fmt = "{id}" - pattern = r"(?:https?://)?(\w+).itch\.io/([\w-]+)" + pattern = r"(?:https?://)?(\w+)\.itch\.io/([\w-]+)" example = "https://USER.itch.io/GAME" def __init__(self, match): @@ -47,8 +47,8 @@ class ItchioGameExtractor(Extractor): for upload_id in text.extract_iter(page, 'data-upload_id="', '"'): file_url = f"{game_url}/file/{upload_id}" - info = self.request(file_url, method="POST", params=params, - headers=headers, data=data).json() + info = self.request_json(file_url, method="POST", params=params, + headers=headers, data=data) game = info["lightbox"]["game"] user = info["lightbox"]["user"] diff --git a/gallery_dl/extractor/kabeuchi.py b/gallery_dl/extractor/kabeuchi.py index 9c1e4352..c259c473 100644 --- a/gallery_dl/extractor/kabeuchi.py +++ b/gallery_dl/extractor/kabeuchi.py @@ -65,7 +65,7 @@ class KabeuchiUserExtractor(Extractor): } while True: - info = self.request(url, method="POST", data=data).json() + info = self.request_json(url, method="POST", data=data) datas = info["datas"] if not datas or not isinstance(datas, list): diff --git a/gallery_dl/extractor/lexica.py b/gallery_dl/extractor/lexica.py index 00a4dac2..6e548478 100644 --- a/gallery_dl/extractor/lexica.py +++ b/gallery_dl/extractor/lexica.py @@ -54,8 +54,8 @@ class LexicaSearchExtractor(Extractor): } while True: - data = self.request( - url, method="POST", headers=headers, json=json).json() + data = self.request_json( + url, method="POST", headers=headers, json=json) prompts = { prompt["id"]: prompt diff --git a/gallery_dl/extractor/lolisafe.py b/gallery_dl/extractor/lolisafe.py index 6b888468..52330332 100644 --- a/gallery_dl/extractor/lolisafe.py +++ b/gallery_dl/extractor/lolisafe.py @@ -72,7 +72,7 @@ class LolisafeAlbumExtractor(LolisafeExtractor): def fetch_album(self, album_id): url = f"{self.root}/api/album/get/{album_id}" - data = self.request(url).json() + data = self.request_json(url) return data["files"], { "album_id" : self.album_id, diff --git a/gallery_dl/extractor/mangadex.py b/gallery_dl/extractor/mangadex.py index 4392b209..10616844 100644 --- a/gallery_dl/extractor/mangadex.py +++ b/gallery_dl/extractor/mangadex.py @@ -301,8 +301,8 @@ class MangadexAPI(): self.extractor.log.debug("Using client-id '%s…'", self.client_id[:24]) url = ("https://auth.mangadex.org/realms/mangadex" "/protocol/openid-connect/token") - data = self.extractor.request( - url, method="POST", data=data, fatal=None).json() + data = self.extractor.request_json( + url, method="POST", data=data, fatal=None) try: access_token = data["access_token"] @@ -328,8 +328,8 @@ class MangadexAPI(): json = {"username": username, "password": password} self.extractor.log.debug("Using legacy login method") - data = self.extractor.request( - url, method="POST", json=json, fatal=None).json() + data = self.extractor.request_json( + url, method="POST", json=json, fatal=None) if data.get("result") != "ok": raise exception.AuthenticationError() diff --git a/gallery_dl/extractor/mangapark.py b/gallery_dl/extractor/mangapark.py index cc78ae5d..76d59368 100644 --- a/gallery_dl/extractor/mangapark.py +++ b/gallery_dl/extractor/mangapark.py @@ -64,8 +64,8 @@ class MangaparkBase(): "variables" : variables, "operationName": opname, } - return self.request( - url, method="POST", json=data).json()["data"].popitem()[1] + return self.request_json( + url, method="POST", json=data)["data"].popitem()[1] class MangaparkChapterExtractor(MangaparkBase, ChapterExtractor): diff --git a/gallery_dl/extractor/naver.py b/gallery_dl/extractor/naver.py index 9ca0369e..2758ae44 100644 --- a/gallery_dl/extractor/naver.py +++ b/gallery_dl/extractor/naver.py @@ -117,7 +117,7 @@ class NaverPostExtractor(NaverBase, GalleryExtractor): "adt" : "glad", "lc" : "ko_KR", } - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) video = max(data["videos"]["list"], key=lambda v: v.get("size") or 0) files.append((video["source"], video)) @@ -160,7 +160,7 @@ class NaverBlogExtractor(NaverBase, Extractor): # loop over all posts while True: - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) for post in data["postList"]: post["url"] = (f"{self.root}/PostView.nhn?blogId=" diff --git a/gallery_dl/extractor/naverwebtoon.py b/gallery_dl/extractor/naverwebtoon.py index f70516cc..237692de 100644 --- a/gallery_dl/extractor/naverwebtoon.py +++ b/gallery_dl/extractor/naverwebtoon.py @@ -89,7 +89,7 @@ class NaverwebtoonComicExtractor(NaverwebtoonBase, Extractor): } while True: - data = self.request(url, headers=headers, params=params).json() + data = self.request_json(url, headers=headers, params=params) path = data["webtoonLevelCode"].lower().replace("_c", "C", 1) base = f"{self.root}/{path}/detail?titleId={data['titleId']}&no=" diff --git a/gallery_dl/extractor/newgrounds.py b/gallery_dl/extractor/newgrounds.py index e8228ed7..63782c63 100644 --- a/gallery_dl/extractor/newgrounds.py +++ b/gallery_dl/extractor/newgrounds.py @@ -296,7 +296,7 @@ class NewgroundsExtractor(Extractor): "Accept": "application/json, text/javascript, */*; q=0.01", "X-Requested-With": "XMLHttpRequest", } - sources = self.request(url, headers=headers).json()["sources"] + sources = self.request_json(url, headers=headers)["sources"] formats = self._video_formats(sources) src = next(formats, "") date = text.parse_timestamp(src.rpartition("?")[2]) @@ -566,7 +566,7 @@ class NewgroundsSearchExtractor(NewgroundsExtractor): } while True: - data = self.request(url, params=params, headers=headers).json() + data = self.request_json(url, params=params, headers=headers) post_url = None for post_url in text.extract_iter(data["content"], 'href="', '"'): diff --git a/gallery_dl/extractor/nsfwalbum.py b/gallery_dl/extractor/nsfwalbum.py index 0e66d1f4..0b84f9cc 100644 --- a/gallery_dl/extractor/nsfwalbum.py +++ b/gallery_dl/extractor/nsfwalbum.py @@ -53,7 +53,7 @@ class NsfwalbumAlbumExtractor(GalleryExtractor): self.request(iframe + image_id).text, 'giraffe.annihilate("', '"')[0]) params = {"spirit": spirit, "photo": image_id} - data = self.request(backend, params=params).json() + data = self.request_json(backend, params=params) break except Exception: tries += 1 diff --git a/gallery_dl/extractor/oauth.py b/gallery_dl/extractor/oauth.py index 2d20f689..b7848dc2 100644 --- a/gallery_dl/extractor/oauth.py +++ b/gallery_dl/extractor/oauth.py @@ -187,8 +187,8 @@ class OAuthBase(Extractor): data["client_id"] = client_id data["client_secret"] = client_secret - data = self.request( - token_url, method="POST", data=data, auth=auth).json() + data = self.request_json( + token_url, method="POST", data=data, auth=auth) # check token response if "error" in data: @@ -383,7 +383,7 @@ class OAuthMastodon(OAuthBase): "redirect_uris": self.redirect_uri, "scopes": "read", } - data = self.request(url, method="POST", data=data).json() + data = self.request_json(url, method="POST", data=data) if "client_id" not in data or "client_secret" not in data: raise exception.StopExtraction( @@ -438,8 +438,8 @@ class OAuthPixiv(OAuthBase): "redirect_uri" : "https://app-api.pixiv.net" "/web/v1/users/auth/pixiv/callback", } - data = self.request( - url, method="POST", headers=headers, data=data).json() + data = self.request_json( + url, method="POST", headers=headers, data=data) if "error" in data: stdout_write(f"\n{data}\n") diff --git a/gallery_dl/extractor/patreon.py b/gallery_dl/extractor/patreon.py index c9d71895..83277387 100644 --- a/gallery_dl/extractor/patreon.py +++ b/gallery_dl/extractor/patreon.py @@ -131,7 +131,7 @@ class PatreonExtractor(Extractor): while url: url = text.ensure_http_scheme(url) - posts = self.request(url, headers=headers).json() + posts = self.request_json(url, headers=headers) if "included" in posts: included = self._transform(posts["included"]) diff --git a/gallery_dl/extractor/photovogue.py b/gallery_dl/extractor/photovogue.py index bc6c43ae..e6043044 100644 --- a/gallery_dl/extractor/photovogue.py +++ b/gallery_dl/extractor/photovogue.py @@ -45,7 +45,7 @@ class PhotovogueUserExtractor(Extractor): } while True: - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) yield from data["items"] if not data["has_next"]: diff --git a/gallery_dl/extractor/picarto.py b/gallery_dl/extractor/picarto.py index ba3ae627..62ac38ac 100644 --- a/gallery_dl/extractor/picarto.py +++ b/gallery_dl/extractor/picarto.py @@ -62,7 +62,7 @@ class PicartoGalleryExtractor(Extractor): } while True: - posts = self.request(url, params=params).json() + posts = self.request_json(url, params=params) if not posts: return yield from posts diff --git a/gallery_dl/extractor/piczel.py b/gallery_dl/extractor/piczel.py index b5ba4573..968776b4 100644 --- a/gallery_dl/extractor/piczel.py +++ b/gallery_dl/extractor/piczel.py @@ -55,7 +55,7 @@ class PiczelExtractor(Extractor): params = {"page": pnum} while True: - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) yield from data["data"] @@ -96,4 +96,4 @@ class PiczelImageExtractor(PiczelExtractor): def posts(self): url = f"{self.root_api}/api/gallery/{self.groups[0]}" - return (self.request(url).json(),) + return (self.request_json(url),) diff --git a/gallery_dl/extractor/pillowfort.py b/gallery_dl/extractor/pillowfort.py index 9944b661..05bc8e7f 100644 --- a/gallery_dl/extractor/pillowfort.py +++ b/gallery_dl/extractor/pillowfort.py @@ -126,7 +126,7 @@ class PillowfortPostExtractor(PillowfortExtractor): def posts(self): url = f"{self.root}/posts/{self.item}/json/" - return (self.request(url).json(),) + return (self.request_json(url),) class PillowfortUserExtractor(PillowfortExtractor): @@ -140,7 +140,7 @@ class PillowfortUserExtractor(PillowfortExtractor): params = {"p": 1} while True: - posts = self.request(url, params=params).json()["posts"] + posts = self.request_json(url, params=params)["posts"] yield from posts if len(posts) < 20: diff --git a/gallery_dl/extractor/pixeldrain.py b/gallery_dl/extractor/pixeldrain.py index 03886bb0..4e76f2ee 100644 --- a/gallery_dl/extractor/pixeldrain.py +++ b/gallery_dl/extractor/pixeldrain.py @@ -43,7 +43,7 @@ class PixeldrainFileExtractor(PixeldrainExtractor): def items(self): url = f"{self.root}/api/file/{self.file_id}" - file = self.request(url + "/info").json() + file = self.request_json(url + "/info") file["url"] = url + "?download" file["date"] = self.parse_datetime(file["date_upload"]) @@ -69,7 +69,7 @@ class PixeldrainAlbumExtractor(PixeldrainExtractor): def items(self): url = f"{self.root}/api/list/{self.album_id}" - album = self.request(url).json() + album = self.request_json(url) files = album["files"] album["count"] = album["file_count"] @@ -120,7 +120,7 @@ class PixeldrainFolderExtractor(PixeldrainExtractor): recursive = self.config("recursive") url = f"{self.root}/api/filesystem/{self.groups[0]}" - stat = self.request(url + "?stat").json() + stat = self.request_json(url + "?stat") paths = stat["path"] path = paths[stat["base_index"]] diff --git a/gallery_dl/extractor/pixiv.py b/gallery_dl/extractor/pixiv.py index 902910a6..af34bdd5 100644 --- a/gallery_dl/extractor/pixiv.py +++ b/gallery_dl/extractor/pixiv.py @@ -233,7 +233,7 @@ class PixivExtractor(Extractor): def _request_ajax(self, endpoint): url = f"{self.root}/ajax{endpoint}" try: - return self.request(url, headers=self.headers_web).json()["body"] + return self.request_json(url, headers=self.headers_web)["body"] except Exception: return None @@ -1075,7 +1075,7 @@ class PixivSketchExtractor(Extractor): } while True: - data = self.request(url, headers=headers).json() + data = self.request_json(url, headers=headers) yield from data["data"]["items"] next_url = data["_links"].get("next") diff --git a/gallery_dl/extractor/pixnet.py b/gallery_dl/extractor/pixnet.py index 1fd98cc1..66b7e914 100644 --- a/gallery_dl/extractor/pixnet.py +++ b/gallery_dl/extractor/pixnet.py @@ -77,7 +77,7 @@ class PixnetImageExtractor(PixnetExtractor): "format": "json", } - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) data["id"] = text.parse_int( data["url"].rpartition("/")[2].partition("-")[0]) data["filename"], _, data["extension"] = data["title"].rpartition(".") diff --git a/gallery_dl/extractor/plurk.py b/gallery_dl/extractor/plurk.py index 8a09860b..37b9b100 100644 --- a/gallery_dl/extractor/plurk.py +++ b/gallery_dl/extractor/plurk.py @@ -49,8 +49,8 @@ class PlurkExtractor(Extractor): } while True: - info = self.request( - url, method="POST", headers=headers, data=data).json() + info = self.request_json( + url, method="POST", headers=headers, data=data) yield from info["responses"] if not info["has_newer"]: return diff --git a/gallery_dl/extractor/poipiku.py b/gallery_dl/extractor/poipiku.py index 974b6e84..957e3164 100644 --- a/gallery_dl/extractor/poipiku.py +++ b/gallery_dl/extractor/poipiku.py @@ -85,8 +85,8 @@ class PoipikuExtractor(Extractor): "MD" : "0", "TWF": "-1", } - resp = self.request( - url, method="POST", headers=headers, data=data).json() + resp = self.request_json( + url, method="POST", headers=headers, data=data) page = resp["html"] if (resp.get("result_num") or 0) < 0: diff --git a/gallery_dl/extractor/pornpics.py b/gallery_dl/extractor/pornpics.py index 6f61a2e3..34a0111e 100644 --- a/gallery_dl/extractor/pornpics.py +++ b/gallery_dl/extractor/pornpics.py @@ -47,8 +47,8 @@ class PornpicsExtractor(Extractor): } while True: - galleries = self.request( - url, params=params, headers=headers).json() + galleries = self.request_json( + url, params=params, headers=headers) yield from galleries if len(galleries) < limit: diff --git a/gallery_dl/extractor/redgifs.py b/gallery_dl/extractor/redgifs.py index f74d1b6a..07fe0ae9 100644 --- a/gallery_dl/extractor/redgifs.py +++ b/gallery_dl/extractor/redgifs.py @@ -256,8 +256,8 @@ class RedgifsAPI(): def _call(self, endpoint, params=None): url = self.API_ROOT + endpoint self.headers["Authorization"] = self._auth() - return self.extractor.request( - url, params=params, headers=self.headers).json() + return self.extractor.request_json( + url, params=params, headers=self.headers) def _pagination(self, endpoint, params=None, key="gifs"): if params is None: @@ -277,5 +277,5 @@ class RedgifsAPI(): # https://github.com/Redgifs/api/wiki/Temporary-tokens url = self.API_ROOT + "/v2/auth/temporary" self.headers["Authorization"] = None - return "Bearer " + self.extractor.request( - url, headers=self.headers).json()["token"] + return "Bearer " + self.extractor.request_json( + url, headers=self.headers)["token"] diff --git a/gallery_dl/extractor/rule34vault.py b/gallery_dl/extractor/rule34vault.py index 69f440e4..14d5aefa 100644 --- a/gallery_dl/extractor/rule34vault.py +++ b/gallery_dl/extractor/rule34vault.py @@ -54,7 +54,7 @@ class Rule34vaultExtractor(BooruExtractor): def _fetch_post(self, post_id): url = f"{self.root}/api/v2/post/{post_id}" - return self.request(url).json() + return self.request_json(url) def _pagination(self, endpoint, params=None): url = f"{self.root}/api{endpoint}" @@ -67,7 +67,7 @@ class Rule34vaultExtractor(BooruExtractor): threshold = self.per_page while True: - data = self.request(url, method="POST", json=params).json() + data = self.request_json(url, method="POST", json=params) yield from data["items"] diff --git a/gallery_dl/extractor/rule34xyz.py b/gallery_dl/extractor/rule34xyz.py index 7011b61e..d63f9cc8 100644 --- a/gallery_dl/extractor/rule34xyz.py +++ b/gallery_dl/extractor/rule34xyz.py @@ -88,7 +88,7 @@ class Rule34xyzExtractor(BooruExtractor): def _fetch_post(self, post_id): url = f"{self.root}/api/v2/post/{post_id}" - return self.request(url).json() + return self.request_json(url) def _pagination(self, endpoint, params=None): url = f"{self.root}/api{endpoint}" @@ -103,7 +103,7 @@ class Rule34xyzExtractor(BooruExtractor): threshold = self.per_page while True: - data = self.request(url, method="POST", json=params).json() + data = self.request_json(url, method="POST", json=params) yield from data["items"] diff --git a/gallery_dl/extractor/schalenetwork.py b/gallery_dl/extractor/schalenetwork.py index 49a7d364..d5172870 100644 --- a/gallery_dl/extractor/schalenetwork.py +++ b/gallery_dl/extractor/schalenetwork.py @@ -40,8 +40,8 @@ class SchalenetworkExtractor(Extractor): url_api = self.root_api + endpoint while True: - data = self.request( - url_api, params=params, headers=self.headers).json() + data = self.request_json( + url_api, params=params, headers=self.headers) try: entries = data["entries"] @@ -106,7 +106,7 @@ class SchalenetworkGalleryExtractor(SchalenetworkExtractor, GalleryExtractor): def metadata(self, _): url = f"{self.root_api}/books/detail/{self.groups[1]}/{self.groups[2]}" - self.data = data = self.request(url, headers=self.headers).json() + self.data = data = self.request_json(url, headers=self.headers) data["date"] = text.parse_timestamp(data["created_at"] // 1000) tags = [] @@ -149,16 +149,16 @@ class SchalenetworkGalleryExtractor(SchalenetworkExtractor, GalleryExtractor): if self.cbz: params["action"] = "dl" - base = self.request( + base = self.request_json( url, method="POST", params=params, headers=self.headers, - ).json()["base"] + )["base"] url = f"{base}?v={data['updated_at']}&w={fmt['w']}" info = text.nameext_from_url(base) if not info["extension"]: info["extension"] = "cbz" return ((url, info),) - data = self.request(url, params=params, headers=self.headers).json() + data = self.request_json(url, params=params, headers=self.headers) base = data["base"] results = [] diff --git a/gallery_dl/extractor/scrolller.py b/gallery_dl/extractor/scrolller.py index c2810db2..40f047a5 100644 --- a/gallery_dl/extractor/scrolller.py +++ b/gallery_dl/extractor/scrolller.py @@ -110,9 +110,9 @@ class ScrolllerExtractor(Extractor): url = "https://api.scrolller.com/api/v2/graphql" headers["Content-Type"] = "text/plain;charset=UTF-8" - return self.request( + return self.request_json( url, method="POST", headers=headers, data=util.json_dumps(data), - ).json()["data"] + )["data"] def _pagination(self, opname, variables, data=None): if data is None: diff --git a/gallery_dl/extractor/simplyhentai.py b/gallery_dl/extractor/simplyhentai.py index 87a971f2..a7393561 100644 --- a/gallery_dl/extractor/simplyhentai.py +++ b/gallery_dl/extractor/simplyhentai.py @@ -57,7 +57,7 @@ class SimplyhentaiGalleryExtractor(GalleryExtractor): def images(self, _): url = self.page_url + "/all-pages" headers = {"Accept": "application/json"} - images = self.request(url, headers=headers).json() + images = self.request_json(url, headers=headers) return [ ( urls["full"].replace("/giant_thumb_", "/"), diff --git a/gallery_dl/extractor/skeb.py b/gallery_dl/extractor/skeb.py index cd0c47a6..e5c7f41c 100644 --- a/gallery_dl/extractor/skeb.py +++ b/gallery_dl/extractor/skeb.py @@ -81,8 +81,8 @@ class SkebExtractor(Extractor): params["offset"] = 0 while True: - posts = self.request( - url, params=params, headers=self.headers).json() + posts = self.request_json( + url, params=params, headers=self.headers) for post in posts: parts = post["path"].split("/") @@ -105,8 +105,8 @@ class SkebExtractor(Extractor): params["limit"] = 90 while True: - data = self.request( - url, params=params, headers=self.headers).json() + data = self.request_json( + url, params=params, headers=self.headers) yield from data if len(data) < params["limit"]: @@ -115,7 +115,7 @@ class SkebExtractor(Extractor): def _get_post_data(self, user_name, post_num): url = f"{self.root}/api/users/{user_name}/works/{post_num}" - resp = self.request(url, headers=self.headers).json() + resp = self.request_json(url, headers=self.headers) creator = resp["creator"] post = { "post_id" : resp["id"], @@ -265,9 +265,9 @@ class SkebSearchExtractor(SkebExtractor): data = {"requests": (request,)} while True: - result = self.request( + result = self.request_json( url, method="POST", params=params, headers=headers, json=data, - ).json()["results"][0] + )["results"][0] for post in result["hits"]: parts = post["path"].split("/") diff --git a/gallery_dl/extractor/slickpic.py b/gallery_dl/extractor/slickpic.py index f6bed219..ee877f20 100644 --- a/gallery_dl/extractor/slickpic.py +++ b/gallery_dl/extractor/slickpic.py @@ -105,7 +105,7 @@ class SlickpicAlbumExtractor(SlickpicExtractor): "sng" : "0", "whq" : "1", } - return self.request(url, method="POST", data=data).json()["list"] + return self.request_json(url, method="POST", data=data)["list"] class SlickpicUserExtractor(SlickpicExtractor): diff --git a/gallery_dl/extractor/speakerdeck.py b/gallery_dl/extractor/speakerdeck.py index 342ca319..b809b7fa 100644 --- a/gallery_dl/extractor/speakerdeck.py +++ b/gallery_dl/extractor/speakerdeck.py @@ -30,7 +30,7 @@ class SpeakerdeckPresentationExtractor(GalleryExtractor): params = { "url": f"{self.root}/{user}/{presentation}", } - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) self.presentation_id = text.extr( data["html"], 'src="//speakerdeck.com/player/', '"') diff --git a/gallery_dl/extractor/steamgriddb.py b/gallery_dl/extractor/steamgriddb.py index 8844865f..de8a872c 100644 --- a/gallery_dl/extractor/steamgriddb.py +++ b/gallery_dl/extractor/steamgriddb.py @@ -72,7 +72,7 @@ class SteamgriddbExtractor(Extractor): yield Message.Url, url, text.nameext_from_url(url, asset) def _call(self, endpoint, **kwargs): - data = self.request(self.root + endpoint, **kwargs).json() + data = self.request_json(self.root + endpoint, **kwargs) if not data["success"]: raise exception.StopExtraction(data["error"]) return data["data"] diff --git a/gallery_dl/extractor/subscribestar.py b/gallery_dl/extractor/subscribestar.py index d9d6d9e5..504bbc36 100644 --- a/gallery_dl/extractor/subscribestar.py +++ b/gallery_dl/extractor/subscribestar.py @@ -233,7 +233,7 @@ class SubscribestarUserExtractor(SubscribestarExtractor): url = text.extr(posts[-1], needle_next_page, '"') if not url: return - page = self.request(self.root + text.unescape(url)).json()["html"] + page = self.request_json(self.root + text.unescape(url))["html"] class SubscribestarPostExtractor(SubscribestarExtractor): diff --git a/gallery_dl/extractor/szurubooru.py b/gallery_dl/extractor/szurubooru.py index d1114b9e..9f042b78 100644 --- a/gallery_dl/extractor/szurubooru.py +++ b/gallery_dl/extractor/szurubooru.py @@ -36,7 +36,7 @@ class SzurubooruExtractor(booru.BooruExtractor): def _api_request(self, endpoint, params=None): url = self.root + "/api" + endpoint - return self.request(url, headers=self.headers, params=params).json() + return self.request_json(url, headers=self.headers, params=params) def _pagination(self, endpoint, params): params["offset"] = 0 diff --git a/gallery_dl/extractor/tapas.py b/gallery_dl/extractor/tapas.py index a53e5d39..d823f6a9 100644 --- a/gallery_dl/extractor/tapas.py +++ b/gallery_dl/extractor/tapas.py @@ -67,7 +67,7 @@ class TapasExtractor(Extractor): def request_api(self, url, params=None): headers = {"Accept": "application/json, text/javascript, */*;"} - return self.request(url, params=params, headers=headers).json()["data"] + return self.request_json(url, params=params, headers=headers)["data"] class TapasEpisodeExtractor(TapasExtractor): diff --git a/gallery_dl/extractor/tsumino.py b/gallery_dl/extractor/tsumino.py index ec80d137..688f6d6b 100644 --- a/gallery_dl/extractor/tsumino.py +++ b/gallery_dl/extractor/tsumino.py @@ -137,8 +137,8 @@ class TsuminoSearchExtractor(TsuminoBase, Extractor): data.update(self._parse(self.query)) while True: - info = self.request( - url, method="POST", headers=headers, data=data).json() + info = self.request_json( + url, method="POST", headers=headers, data=data) for gallery in info["data"]: yield gallery["entry"] diff --git a/gallery_dl/extractor/unsplash.py b/gallery_dl/extractor/unsplash.py index 0821ee83..cf6631fc 100644 --- a/gallery_dl/extractor/unsplash.py +++ b/gallery_dl/extractor/unsplash.py @@ -61,7 +61,7 @@ class UnsplashExtractor(Extractor): params["page"] = self.page_start while True: - photos = self.request(url, params=params).json() + photos = self.request_json(url, params=params) if results: photos = photos["results"] yield from photos @@ -79,7 +79,7 @@ class UnsplashImageExtractor(UnsplashExtractor): def photos(self): url = f"{self.root}/napi/photos/{self.item}" - return (self.request(url).json(),) + return (self.request_json(url),) class UnsplashUserExtractor(UnsplashExtractor): diff --git a/gallery_dl/extractor/vsco.py b/gallery_dl/extractor/vsco.py index d2adb13f..82858d63 100644 --- a/gallery_dl/extractor/vsco.py +++ b/gallery_dl/extractor/vsco.py @@ -93,7 +93,7 @@ class VscoExtractor(Extractor): yield from map(self._transform_media, extra) while True: - data = self.request(url, params=params, headers=headers).json() + data = self.request_json(url, params=params, headers=headers) medias = data.get(key) if not medias: return @@ -238,7 +238,7 @@ class VscoSpaceExtractor(VscoExtractor): return params["cursor"] = cursor["postcursorcontext"]["postId"] - data = self.request(url, params=params, headers=headers).json() + data = self.request_json(url, params=params, headers=headers) class VscoSpacesExtractor(VscoExtractor): @@ -262,7 +262,7 @@ class VscoSpacesExtractor(VscoExtractor): } # this would theoretically need to be paginated url = f"{self.root}/grpc/spaces/user/{uid}" - data = self.request(url, headers=headers).json() + data = self.request_json(url, headers=headers) for space in data["spacesWithRoleList"]: space = space["space"] diff --git a/gallery_dl/extractor/weasyl.py b/gallery_dl/extractor/weasyl.py index 7bc7be7f..a69f3a85 100644 --- a/gallery_dl/extractor/weasyl.py +++ b/gallery_dl/extractor/weasyl.py @@ -34,12 +34,12 @@ class WeasylExtractor(Extractor): self.session.headers['X-Weasyl-API-Key'] = self.config("api-key") def request_submission(self, submitid): - return self.request( - f"{self.root}/api/submissions/{submitid}/view").json() + return self.request_json( + f"{self.root}/api/submissions/{submitid}/view") def retrieve_journal(self, journalid): - data = self.request( - f"{self.root}/api/journals/{journalid}/view").json() + data = self.request_json( + f"{self.root}/api/journals/{journalid}/view") data["extension"] = "html" data["html"] = "text:" + data["content"] data["date"] = text.parse_datetime(data["posted_at"]) @@ -54,7 +54,7 @@ class WeasylExtractor(Extractor): } while True: - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) for submission in data["submissions"]: if metadata: submission = self.request_submission( diff --git a/gallery_dl/extractor/weibo.py b/gallery_dl/extractor/weibo.py index b878025a..45da8a93 100644 --- a/gallery_dl/extractor/weibo.py +++ b/gallery_dl/extractor/weibo.py @@ -152,7 +152,7 @@ class WeiboExtractor(Extractor): def _status_by_id(self, status_id): url = f"{self.root}/ajax/statuses/show?id={status_id}" - return self.request(url).json() + return self.request_json(url) def _user_id(self): if len(self.user) >= 10 and self.user.isdecimal(): @@ -161,7 +161,7 @@ class WeiboExtractor(Extractor): url = (f"{self.root}/ajax/profile/info?" f"{'screen_name' if self._prefix == 'n' else 'custom'}=" f"{self.user}") - return self.request(url).json()["data"]["user"]["idstr"] + return self.request_json(url)["data"]["user"]["idstr"] def _pagination(self, endpoint, params): url = self.root + "/ajax" + endpoint diff --git a/gallery_dl/extractor/wikiart.py b/gallery_dl/extractor/wikiart.py index b45d551d..830d8806 100644 --- a/gallery_dl/extractor/wikiart.py +++ b/gallery_dl/extractor/wikiart.py @@ -54,7 +54,7 @@ class WikiartExtractor(Extractor): params.update(extra_params) while True: - data = self.request(url, headers=headers, params=params).json() + data = self.request_json(url, headers=headers, params=params) items = data.get(key) if not items: return @@ -78,7 +78,7 @@ class WikiartArtistExtractor(WikiartExtractor): def metadata(self): url = f"{self.root}/{self.lang}/{self.artist_name}?json=2" - self.artist = self.request(url).json() + self.artist = self.request_json(url) return {"artist": self.artist} def paintings(self): diff --git a/gallery_dl/extractor/wikimedia.py b/gallery_dl/extractor/wikimedia.py index a6b3d4a0..6304a2f5 100644 --- a/gallery_dl/extractor/wikimedia.py +++ b/gallery_dl/extractor/wikimedia.py @@ -107,7 +107,7 @@ class WikimediaExtractor(BaseExtractor): ) while True: - data = self.request(url, params=params).json() + data = self.request_json(url, params=params) # ref: https://www.mediawiki.org/wiki/API:Errors_and_warnings error = data.get("error") diff --git a/gallery_dl/extractor/yiffverse.py b/gallery_dl/extractor/yiffverse.py index 37c1efac..1595b4d6 100644 --- a/gallery_dl/extractor/yiffverse.py +++ b/gallery_dl/extractor/yiffverse.py @@ -74,7 +74,7 @@ class YiffverseExtractor(BooruExtractor): def _fetch_post(self, post_id): url = f"{self.root}/api/v2/post/{post_id}" - return self.request(url).json() + return self.request_json(url) def _pagination(self, endpoint, params=None): url = f"{self.root}/api{endpoint}" @@ -87,7 +87,7 @@ class YiffverseExtractor(BooruExtractor): threshold = self.per_page while True: - data = self.request(url, method="POST", json=params).json() + data = self.request_json(url, method="POST", json=params) yield from data["items"]