summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/iwara.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/iwara.py')
-rw-r--r--gallery_dl/extractor/iwara.py60
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: