mirror of
https://github.com/mikf/gallery-dl.git
synced 2024-11-22 02:32:33 +01:00
[vsco] add 'avatar' extractor (#5341)
This commit is contained in:
parent
d0cead105b
commit
bd8e4797e5
@ -940,7 +940,7 @@ Consider all listed sites to potentially be NSFW.
|
||||
<tr>
|
||||
<td>VSCO</td>
|
||||
<td>https://vsco.co/</td>
|
||||
<td>Collections, individual Images, Spaces, User Profiles</td>
|
||||
<td>Avatars, Collections, individual Images, Spaces, User Profiles</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -46,6 +46,8 @@ class VscoExtractor(Extractor):
|
||||
url = "https://image-{}.vsco.co/{}".format(cdn, path)
|
||||
elif cdn.isdecimal():
|
||||
url = "https://image.vsco.co/" + base
|
||||
elif img["responsive_url"].startswith("http"):
|
||||
url = img["responsive_url"]
|
||||
else:
|
||||
url = "https://" + img["responsive_url"]
|
||||
|
||||
@ -238,6 +240,34 @@ class VscoSpacesExtractor(VscoExtractor):
|
||||
yield Message.Queue, url, space
|
||||
|
||||
|
||||
class VscoAvatarExtractor(VscoExtractor):
|
||||
"""Extractor for vsco.co user avatars"""
|
||||
subcategory = "avatar"
|
||||
pattern = USER_PATTERN + r"/avatar"
|
||||
example = "https://vsco.co/USER/avatar"
|
||||
|
||||
def images(self):
|
||||
url = "{}/{}/gallery".format(self.root, self.user)
|
||||
page = self.request(url).text
|
||||
piid = text.extr(page, '"profileImageId":"', '"')
|
||||
|
||||
url = "https://im.vsco.co/" + piid
|
||||
# needs GET request, since HEAD does not redirect to full URL
|
||||
response = self.request(url, allow_redirects=False)
|
||||
|
||||
return ({
|
||||
"_id" : piid,
|
||||
"is_video" : False,
|
||||
"grid_name" : "",
|
||||
"upload_date" : 0,
|
||||
"responsive_url": response.headers["Location"],
|
||||
"video_url" : "",
|
||||
"image_meta" : None,
|
||||
"width" : 0,
|
||||
"height" : 0,
|
||||
},)
|
||||
|
||||
|
||||
class VscoImageExtractor(VscoExtractor):
|
||||
"""Extractor for individual images on vsco.co"""
|
||||
subcategory = "image"
|
||||
|
@ -55,6 +55,16 @@ __tests__ = (
|
||||
),
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://vsco.co/vsco/avatar",
|
||||
"#category": ("", "vsco", "avatar"),
|
||||
"#class" : vsco.VscoAvatarExtractor,
|
||||
"#urls" : "https://image-aws-us-west-2.vsco.co/3c69ae/304128/652d9f3b39a6007526dda683/vscoprofile-avatar.jpg",
|
||||
"#sha1_content" : "57cd648759e34a6daefc5c79542ddb4595b9b677",
|
||||
|
||||
"id": "652d9f3b39a6007526dda683",
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://vsco.co/erenyildiz/media/5d34b93ef632433030707ce2",
|
||||
"#category": ("", "vsco", "image"),
|
||||
|
Loading…
Reference in New Issue
Block a user