diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 22e848a5..9d558755 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -868,7 +868,7 @@ Consider all sites to be NSFW unless otherwise known. Twitter https://twitter.com/ - Avatars, Backgrounds, Bookmarks, Events, individual Images, Likes, Lists, List Members, Media Timelines, Search Results, Timelines, Tweets + Avatars, Backgrounds, Bookmarks, Events, Hashtags, individual Images, Likes, Lists, List Members, Media Timelines, Search Results, Timelines, Tweets Supported diff --git a/gallery_dl/extractor/twitter.py b/gallery_dl/extractor/twitter.py index 43b39c59..89d96d73 100644 --- a/gallery_dl/extractor/twitter.py +++ b/gallery_dl/extractor/twitter.py @@ -649,6 +649,21 @@ class TwitterSearchExtractor(TwitterExtractor): return self.api.search_adaptive(query) +class TwitterHashtagExtractor(TwitterExtractor): + """Extractor for Twitter hashtags""" + subcategory = "hashtag" + pattern = BASE_PATTERN + r"/hashtag/([^/?#]+)" + test = ("https://twitter.com/hashtag/nature", { + "pattern": TwitterSearchExtractor.pattern, + "url": "3571c3a53b7647ea35517041fdc17f77ec5b2cb9", + }) + + def items(self): + url = "{}/search?q=%23{}".format(self.root, self.user) + data = {"_extractor": TwitterSearchExtractor} + yield Message.Queue, url, data + + class TwitterEventExtractor(TwitterExtractor): """Extractor for Tweets from a Twitter Event""" subcategory = "event"