[bluesky] add 'hashtag' extractor (#4438)

https://github.com/mikf/gallery-dl/issues/4438#issuecomment-2439979958
This commit is contained in:
Mike Fährmann
2024-10-27 13:59:46 +01:00
parent 8dce52471a
commit a4791f5243
3 changed files with 28 additions and 2 deletions

View File

@@ -317,6 +317,15 @@ class BlueskySearchExtractor(BlueskyExtractor):
return self.api.search_posts(self.user)
class BlueskyHashtagExtractor(BlueskyExtractor):
subcategory = "hashtag"
pattern = BASE_PATTERN + r"/hashtag/([^/?#]+)(?:/(top|latest))?"
example = "https://bsky.app/hashtag/NAME"
def posts(self):
return self.api.search_posts("#"+self.user, self.groups[1])
class BlueskyAPI():
"""Interface for the Bluesky API
@@ -412,11 +421,12 @@ class BlueskyAPI():
params = {"handle": handle}
return self._call(endpoint, params)["did"]
def search_posts(self, query):
def search_posts(self, query, sort=None):
endpoint = "app.bsky.feed.searchPosts"
params = {
"q" : query,
"limit": "100",
"sort" : sort,
}
return self._pagination(endpoint, params, "posts")