replace old %-formatted and .format(…) strings with f-strings (#7671)
mostly using flynt https://github.com/ikamensh/flynt
This commit is contained in:
@@ -47,7 +47,7 @@ class VscoExtractor(Extractor):
|
||||
base = img["responsive_url"].partition("/")[2]
|
||||
cdn, _, path = base.partition("/")
|
||||
if cdn.startswith("aws"):
|
||||
url = "https://image-{}.vsco.co/{}".format(cdn, path)
|
||||
url = f"https://image-{cdn}.vsco.co/{path}"
|
||||
elif cdn.isdecimal():
|
||||
url = "https://image.vsco.co/" + base
|
||||
elif img["responsive_url"].startswith("http"):
|
||||
@@ -83,7 +83,7 @@ class VscoExtractor(Extractor):
|
||||
|
||||
def _pagination(self, url, params, token, key, extra=None):
|
||||
headers = {
|
||||
"Referer" : "{}/{}".format(self.root, self.user),
|
||||
"Referer" : f"{self.root}/{self.user}",
|
||||
"Authorization" : "Bearer " + token,
|
||||
"X-Client-Platform": "web",
|
||||
"X-Client-Build" : "1",
|
||||
@@ -136,7 +136,7 @@ class VscoUserExtractor(Dispatch, VscoExtractor):
|
||||
example = "https://vsco.co/USER"
|
||||
|
||||
def items(self):
|
||||
base = "{}/{}/".format(self.root, self.user)
|
||||
base = f"{self.root}/{self.user}/"
|
||||
return self._dispatch_extractors((
|
||||
(VscoAvatarExtractor , base + "avatar"),
|
||||
(VscoGalleryExtractor , base + "gallery"),
|
||||
@@ -152,12 +152,12 @@ class VscoGalleryExtractor(VscoExtractor):
|
||||
example = "https://vsco.co/USER/gallery"
|
||||
|
||||
def images(self):
|
||||
url = "{}/{}/gallery".format(self.root, self.user)
|
||||
url = f"{self.root}/{self.user}/gallery"
|
||||
data = self._extract_preload_state(url)
|
||||
tkn = data["users"]["currentUser"]["tkn"]
|
||||
sid = str(data["sites"]["siteByUsername"][self.user]["site"]["id"])
|
||||
|
||||
url = "{}/api/3.0/medias/profile".format(self.root)
|
||||
url = f"{self.root}/api/3.0/medias/profile"
|
||||
params = {
|
||||
"site_id" : sid,
|
||||
"limit" : "14",
|
||||
@@ -176,14 +176,14 @@ class VscoCollectionExtractor(VscoExtractor):
|
||||
example = "https://vsco.co/USER/collection/1"
|
||||
|
||||
def images(self):
|
||||
url = "{}/{}/collection/1".format(self.root, self.user)
|
||||
url = f"{self.root}/{self.user}/collection/1"
|
||||
data = self._extract_preload_state(url)
|
||||
|
||||
tkn = data["users"]["currentUser"]["tkn"]
|
||||
cid = (data["sites"]["siteByUsername"][self.user]
|
||||
["site"]["siteCollectionId"])
|
||||
|
||||
url = "{}/api/2.0/collections/{}/medias".format(self.root, cid)
|
||||
url = f"{self.root}/api/2.0/collections/{cid}/medias"
|
||||
params = {"page": 2, "size": "20"}
|
||||
return self._pagination(url, params, tkn, "medias", (
|
||||
data["medias"]["byId"][mid["id"]]["media"]
|
||||
@@ -201,7 +201,7 @@ class VscoSpaceExtractor(VscoExtractor):
|
||||
example = "https://vsco.co/spaces/a1b2c3d4e5f"
|
||||
|
||||
def images(self):
|
||||
url = "{}/spaces/{}".format(self.root, self.user)
|
||||
url = f"{self.root}/spaces/{self.user}"
|
||||
data = self._extract_preload_state(url)
|
||||
|
||||
tkn = data["users"]["currentUser"]["tkn"]
|
||||
@@ -215,14 +215,14 @@ class VscoSpaceExtractor(VscoExtractor):
|
||||
space = data["spaces"]["byId"][sid]
|
||||
space["postsList"] = [posts[pid] for pid in space["postsList"]]
|
||||
|
||||
url = "{}/grpc/spaces/{}/posts".format(self.root, sid)
|
||||
url = f"{self.root}/grpc/spaces/{sid}/posts"
|
||||
params = {}
|
||||
return self._pagination(url, params, tkn, space)
|
||||
|
||||
def _pagination(self, url, params, token, data):
|
||||
headers = {
|
||||
"Accept" : "application/json",
|
||||
"Referer" : "{}/spaces/{}".format(self.root, self.user),
|
||||
"Referer" : f"{self.root}/spaces/{self.user}",
|
||||
"Content-Type" : "application/json",
|
||||
"Authorization": "Bearer " + token,
|
||||
}
|
||||
@@ -248,7 +248,7 @@ class VscoSpacesExtractor(VscoExtractor):
|
||||
example = "https://vsco.co/USER/spaces"
|
||||
|
||||
def items(self):
|
||||
url = "{}/{}/spaces".format(self.root, self.user)
|
||||
url = f"{self.root}/{self.user}/spaces"
|
||||
data = self._extract_preload_state(url)
|
||||
|
||||
tkn = data["users"]["currentUser"]["tkn"]
|
||||
@@ -261,12 +261,12 @@ class VscoSpacesExtractor(VscoExtractor):
|
||||
"Authorization": "Bearer " + tkn,
|
||||
}
|
||||
# this would theoretically need to be paginated
|
||||
url = "{}/grpc/spaces/user/{}".format(self.root, uid)
|
||||
url = f"{self.root}/grpc/spaces/user/{uid}"
|
||||
data = self.request(url, headers=headers).json()
|
||||
|
||||
for space in data["spacesWithRoleList"]:
|
||||
space = space["space"]
|
||||
url = "{}/spaces/{}".format(self.root, space["id"])
|
||||
url = f"{self.root}/spaces/{space['id']}"
|
||||
space["_extractor"] = VscoSpaceExtractor
|
||||
yield Message.Queue, url, space
|
||||
|
||||
@@ -278,7 +278,7 @@ class VscoAvatarExtractor(VscoExtractor):
|
||||
example = "https://vsco.co/USER/avatar"
|
||||
|
||||
def images(self):
|
||||
url = "{}/{}/gallery".format(self.root, self.user)
|
||||
url = f"{self.root}/{self.user}/gallery"
|
||||
page = self.request(url).text
|
||||
piid = text.extr(page, '"profileImageId":"', '"')
|
||||
|
||||
@@ -306,7 +306,7 @@ class VscoImageExtractor(VscoExtractor):
|
||||
example = "https://vsco.co/USER/media/0123456789abcdef"
|
||||
|
||||
def images(self):
|
||||
url = "{}/{}/media/{}".format(self.root, self.user, self.groups[1])
|
||||
url = f"{self.root}/{self.user}/media/{self.groups[1]}"
|
||||
data = self._extract_preload_state(url)
|
||||
media = data["medias"]["byId"].popitem()[1]["media"]
|
||||
return (self._transform_media(media),)
|
||||
@@ -319,7 +319,7 @@ class VscoVideoExtractor(VscoExtractor):
|
||||
example = "https://vsco.co/USER/video/012345678-9abc-def0"
|
||||
|
||||
def images(self):
|
||||
url = "{}/{}/video/{}".format(self.root, self.user, self.groups[1])
|
||||
url = f"{self.root}/{self.user}/video/{self.groups[1]}"
|
||||
data = self._extract_preload_state(url)
|
||||
media = data["medias"]["byId"].popitem()[1]["media"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user