[bluesky] add 'info' extractor
This commit is contained in:
@@ -142,7 +142,7 @@ Consider all listed sites to potentially be NSFW.
|
||||
<tr>
|
||||
<td>Bluesky</td>
|
||||
<td>https://bsky.app/</td>
|
||||
<td>Avatars, Backgrounds, Feeds, Followed Users, Hashtags, Likes, Lists, Media Files, Posts, Replies, Search Results, User Profiles</td>
|
||||
<td>Avatars, Backgrounds, Feeds, Followed Users, Hashtags, User Profile Information, Likes, Lists, Media Files, Posts, Replies, Search Results, User Profiles</td>
|
||||
<td>Supported</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -205,6 +205,7 @@ class BlueskyUserExtractor(BlueskyExtractor):
|
||||
def items(self):
|
||||
base = "{}/profile/{}/".format(self.root, self.user)
|
||||
return self._dispatch_extractors((
|
||||
(BlueskyInfoExtractor , base + "info"),
|
||||
(BlueskyAvatarExtractor , base + "avatar"),
|
||||
(BlueskyBackgroundExtractor, base + "banner"),
|
||||
(BlueskyPostsExtractor , base + "posts"),
|
||||
@@ -301,6 +302,17 @@ class BlueskyPostExtractor(BlueskyExtractor):
|
||||
return self.api.get_post_thread(self.user, self.post_id)
|
||||
|
||||
|
||||
class BlueskyInfoExtractor(BlueskyExtractor):
|
||||
subcategory = "info"
|
||||
pattern = USER_PATTERN + r"/info"
|
||||
example = "https://bsky.app/profile/HANDLE/info"
|
||||
|
||||
def items(self):
|
||||
self._metadata_user = True
|
||||
self.api._did_from_actor(self.user)
|
||||
return iter(((Message.Directory, self._user),))
|
||||
|
||||
|
||||
class BlueskyAvatarExtractor(BlueskyExtractor):
|
||||
subcategory = "avatar"
|
||||
filename_fmt = "avatar_{post_id}.{extension}"
|
||||
|
||||
@@ -42,6 +42,11 @@ __tests__ = (
|
||||
),
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://bsky.app/profile/bsky.app/info",
|
||||
"#class" : bluesky.BlueskyInfoExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://bsky.app/profile/bsky.app/avatar",
|
||||
"#category": ("", "bluesky", "avatar"),
|
||||
|
||||
Reference in New Issue
Block a user