[bluesky] add 'info' extractor

This commit is contained in:
Mike Fährmann
2024-12-05 08:35:37 +01:00
parent a526a3d00d
commit 624dc7f407
3 changed files with 18 additions and 1 deletions

View File

@@ -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>

View File

@@ -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}"

View File

@@ -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"),