diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 5f4ae49d..3b3dbb69 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -364,7 +364,7 @@ Consider all sites to be NSFW unless otherwise known. Inkbunny https://inkbunny.net/ - Favorites, Pools, Posts, User Profiles + Favorites, Pools, Posts, Search Results, User Profiles Supported diff --git a/gallery_dl/extractor/inkbunny.py b/gallery_dl/extractor/inkbunny.py index 3d09d791..8ee8ca94 100644 --- a/gallery_dl/extractor/inkbunny.py +++ b/gallery_dl/extractor/inkbunny.py @@ -205,6 +205,28 @@ class InkbunnyFavoriteExtractor(InkbunnyExtractor): return self.api.search(params) +class InkbunnySearchExtractor(InkbunnyExtractor): + """Extractor for inkbunny search results""" + subcategory = "search" + pattern = (BASE_PATTERN + + r"/submissionsviewall\.php\?([^#]+&mode=search&[^#]+)") + test = (("https://inkbunny.net/submissionsviewall.php?rid=ffffffffff" + "&mode=search&page=1&orderby=create_datetime&text=cute" + "&stringtype=and&keywords=yes&title=yes&description=no&artist=" + "&favsby=&type=&days=&keyword_id=&user_id=&random=&md5="), { + "range": "1-10", + "count": 10, + }) + + def __init__(self, match): + InkbunnyExtractor.__init__(self, match) + self.params = text.parse_query(match.group(1)) + self.params.pop("rid", None) + + def posts(self): + return self.api.search(self.params) + + class InkbunnyFollowingExtractor(InkbunnyExtractor): """Extractor for inkbunny user watches""" subcategory = "following"