diff options
Diffstat (limited to 'gallery_dl/extractor/iwara.py')
| -rw-r--r-- | gallery_dl/extractor/iwara.py | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/gallery_dl/extractor/iwara.py b/gallery_dl/extractor/iwara.py index d9d1cf0..5a2049d 100644 --- a/gallery_dl/extractor/iwara.py +++ b/gallery_dl/extractor/iwara.py @@ -12,7 +12,7 @@ from ..cache import cache, memcache import hashlib BASE_PATTERN = r"(?:https?://)?(?:www\.)?iwara\.tv" -USER_PATTERN = rf"{BASE_PATTERN}/profile/([^/?#]+)" +USER_PATTERN = BASE_PATTERN + r"/profile/([^/?#]+)" class IwaraExtractor(Extractor): @@ -79,10 +79,10 @@ class IwaraExtractor(Extractor): continue yield Message.Directory, "", info - yield Message.Url, f"https:{download_url}", info + yield Message.Url, "https:" + download_url, info def items_user(self, users, key=None): - base = f"{self.root}/profile/" + base = self.root + "/profile/" for user in users: if key is not None: user = user[key] @@ -90,7 +90,7 @@ class IwaraExtractor(Extractor): continue user["type"] = "user" user["_extractor"] = IwaraUserExtractor - yield Message.Queue, f"{base}{username}", user + yield Message.Queue, base + username, user def items_by_type(self, type, results): if type == "image": @@ -158,21 +158,21 @@ class IwaraExtractor(Extractor): class IwaraUserExtractor(Dispatch, IwaraExtractor): """Extractor for iwara.tv profile pages""" - pattern = rf"{USER_PATTERN}/?$" + pattern = USER_PATTERN + r"/?$" example = "https://www.iwara.tv/profile/USERNAME" def items(self): base = f"{self.root}/profile/{self.groups[0]}/" return self._dispatch_extractors(( - (IwaraUserImagesExtractor , f"{base}images"), - (IwaraUserVideosExtractor , f"{base}videos"), - (IwaraUserPlaylistsExtractor, f"{base}playlists"), + (IwaraUserImagesExtractor , base + "images"), + (IwaraUserVideosExtractor , base + "videos"), + (IwaraUserPlaylistsExtractor, base + "playlists"), ), ("user-images", "user-videos")) class IwaraUserImagesExtractor(IwaraExtractor): subcategory = "user-images" - pattern = rf"{USER_PATTERN}/images(?:\?([^#]+))?" + pattern = USER_PATTERN + r"/images(?:\?([^#]+))?" example = "https://www.iwara.tv/profile/USERNAME/images" def items(self): @@ -182,7 +182,7 @@ class IwaraUserImagesExtractor(IwaraExtractor): class IwaraUserVideosExtractor(IwaraExtractor): subcategory = "user-videos" - pattern = rf"{USER_PATTERN}/videos(?:\?([^#]+))?" + pattern = USER_PATTERN + r"/videos(?:\?([^#]+))?" example = "https://www.iwara.tv/profile/USERNAME/videos" def items(self): @@ -192,22 +192,22 @@ class IwaraUserVideosExtractor(IwaraExtractor): class IwaraUserPlaylistsExtractor(IwaraExtractor): subcategory = "user-playlists" - pattern = rf"{USER_PATTERN}/playlists(?:\?([^#]+))?" + pattern = USER_PATTERN + r"/playlists(?:\?([^#]+))?" example = "https://www.iwara.tv/profile/USERNAME/playlists" def items(self): - base = f"{self.root}/playlist/" + base = self.root + "/playlist/" for playlist in self.api.playlists(self._user_params()[1]): playlist["type"] = "playlist" playlist["_extractor"] = IwaraPlaylistExtractor - url = f"{base}{playlist['id']}" + url = base + playlist["id"] yield Message.Queue, url, playlist class IwaraFollowingExtractor(IwaraExtractor): subcategory = "following" - pattern = rf"{USER_PATTERN}/following" + pattern = USER_PATTERN + r"/following" example = "https://www.iwara.tv/profile/USERNAME/following" def items(self): @@ -217,7 +217,7 @@ class IwaraFollowingExtractor(IwaraExtractor): class IwaraFollowersExtractor(IwaraExtractor): subcategory = "followers" - pattern = rf"{USER_PATTERN}/followers" + pattern = USER_PATTERN + r"/followers" example = "https://www.iwara.tv/profile/USERNAME/followers" def items(self): @@ -228,7 +228,7 @@ class IwaraFollowersExtractor(IwaraExtractor): class IwaraImageExtractor(IwaraExtractor): """Extractor for individual iwara.tv image pages""" subcategory = "image" - pattern = rf"{BASE_PATTERN}/image/([^/?#]+)" + pattern = BASE_PATTERN + r"/image/([^/?#]+)" example = "https://www.iwara.tv/image/ID" def items(self): @@ -238,7 +238,7 @@ class IwaraImageExtractor(IwaraExtractor): class IwaraVideoExtractor(IwaraExtractor): """Extractor for individual iwara.tv videos""" subcategory = "video" - pattern = rf"{BASE_PATTERN}/video/([^/?#]+)" + pattern = BASE_PATTERN + r"/video/([^/?#]+)" example = "https://www.iwara.tv/video/ID" def items(self): @@ -248,7 +248,7 @@ class IwaraVideoExtractor(IwaraExtractor): class IwaraPlaylistExtractor(IwaraExtractor): """Extractor for individual iwara.tv playlist pages""" subcategory = "playlist" - pattern = rf"{BASE_PATTERN}/playlist/([^/?#]+)" + pattern = BASE_PATTERN + r"/playlist/([^/?#]+)" example = "https://www.iwara.tv/playlist/ID" def items(self): @@ -257,7 +257,7 @@ class IwaraPlaylistExtractor(IwaraExtractor): class IwaraFavoriteExtractor(IwaraExtractor): subcategory = "favorite" - pattern = rf"{BASE_PATTERN}/favorites(?:/(image|video)s)?" + pattern = BASE_PATTERN + r"/favorites(?:/(image|video)s)?" example = "https://www.iwara.tv/favorites/videos" def items(self): @@ -268,7 +268,7 @@ class IwaraFavoriteExtractor(IwaraExtractor): class IwaraSearchExtractor(IwaraExtractor): """Extractor for iwara.tv search pages""" subcategory = "search" - pattern = rf"{BASE_PATTERN}/search\?([^#]+)" + pattern = BASE_PATTERN + r"/search\?([^#]+)" example = "https://www.iwara.tv/search?query=QUERY&type=TYPE" def items(self): @@ -281,7 +281,7 @@ class IwaraSearchExtractor(IwaraExtractor): class IwaraTagExtractor(IwaraExtractor): """Extractor for iwara.tv tag search""" subcategory = "tag" - pattern = rf"{BASE_PATTERN}/(image|video)s(?:\?([^#]+))?" + pattern = BASE_PATTERN + r"/(image|video)s(?:\?([^#]+))?" example = "https://www.iwara.tv/videos?tags=TAGS" def items(self): @@ -298,7 +298,7 @@ class IwaraAPI(): def __init__(self, extractor): self.extractor = extractor self.headers = { - "Referer" : f"{extractor.root}/", + "Referer" : extractor.root + "/", "Content-Type": "application/json", "Origin" : extractor.root, } @@ -308,15 +308,15 @@ class IwaraAPI(): self.authenticate = util.noop def image(self, image_id): - endpoint = f"/image/{image_id}" + endpoint = "/image/" + image_id return self._call(endpoint) def video(self, video_id): - endpoint = f"/video/{video_id}" + endpoint = "/video/" + video_id return self._call(endpoint) def playlist(self, playlist_id): - endpoint = f"/playlist/{playlist_id}" + endpoint = "/playlist/" + playlist_id return self._pagination(endpoint) def detail(self, media): @@ -356,7 +356,7 @@ class IwaraAPI(): @memcache(keyarg=1) def profile(self, username): - endpoint = f"/profile/{username}" + endpoint = "/profile/" + username return self._call(endpoint) def user_following(self, user_id): @@ -387,7 +387,7 @@ class IwaraAPI(): if refresh_token is None: self.extractor.log.info("Logging in as %s", username) - url = f"{self.root}/user/login" + url = self.root + "/user/login" json = { "email" : username, "password": self.password @@ -403,15 +403,15 @@ class IwaraAPI(): self.extractor.log.info("Refreshing access token for %s", username) - url = f"{self.root}/user/token" - headers = {"Authorization": f"Bearer {refresh_token}", **self.headers} + url = self.root + "/user/token" + headers = {"Authorization": "Bearer " + refresh_token, **self.headers} data = self.extractor.request_json( url, method="POST", headers=headers, fatal=False) if not (access_token := data.get("accessToken")): self.extractor.log.debug(data) raise exception.AuthenticationError(data.get("message")) - return f"Bearer {access_token}" + return "Bearer " + access_token def _call(self, endpoint, params=None, headers=None): if headers is None: |
