From db3363ac0b8270725eb8dcf1e038691740602677 Mon Sep 17 00:00:00 2001 From: enduser420 <91022934+enduser420@users.noreply.github.com> Date: Mon, 16 Oct 2023 16:51:30 +0530 Subject: [PATCH] [redgifs] fix 'niches' extraction --- gallery_dl/extractor/redgifs.py | 15 +++++++++++---- test/results/redgifs.py | 8 ++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/gallery_dl/extractor/redgifs.py b/gallery_dl/extractor/redgifs.py index e246405ab4..6185acb690 100644 --- a/gallery_dl/extractor/redgifs.py +++ b/gallery_dl/extractor/redgifs.py @@ -146,11 +146,17 @@ def items(self): class RedgifsNichesExtractor(RedgifsExtractor): """Extractor for redgifs niches""" subcategory = "niches" - pattern = r"(?:https?://)?(?:www\.)?redgifs\.com/niches/([^/?#]+)" + pattern = (r"(?:https?://)?(?:www\.)?redgifs\.com/niches/([^/?#]+)/?" + r"(?:\?([^#]+))?$") example = "https://www.redgifs.com/niches/NAME" + def __init__(self, match): + RedgifsExtractor.__init__(self, match) + self.query = match.group(2) + def gifs(self): - return self.api.niches(self.key) + order = text.parse_query(self.query).get("order") + return self.api.niches(self.key, order or "new") class RedgifsSearchExtractor(RedgifsExtractor): @@ -232,9 +238,10 @@ def collections(self, user): endpoint = "/v2/users/{}/collections".format(user) return self._pagination(endpoint, key="collections") - def niches(self, niche): + def niches(self, niche, order): endpoint = "/v2/niches/{}/gifs".format(niche) - return self._pagination(endpoint) + params = {"count": 30, "order": order} + return self._pagination(endpoint, params) def search(self, params): endpoint = "/v2/gifs/search" diff --git a/test/results/redgifs.py b/test/results/redgifs.py index 669f2a2365..0febcf535d 100644 --- a/test/results/redgifs.py +++ b/test/results/redgifs.py @@ -67,19 +67,19 @@ }, { - "#url" : "https://www.redgifs.com/niches/boobs", + "#url" : "https://www.redgifs.com/niches/just-boobs", "#category": ("", "redgifs", "niches"), "#class" : redgifs.RedgifsNichesExtractor, - "#pattern" : r"https://\w+\.redgifs\.com/[\w-]+\.mp4", + "#pattern" : r"https://\w+\.redgifs\.com/[\w-]+\.(mp4|jpg)", "#range" : "1-20", "#count" : 20, }, { - "#url" : "https://www.redgifs.com/niches/ass", + "#url" : "https://www.redgifs.com/niches/thick-booty", "#category": ("", "redgifs", "niches"), "#class" : redgifs.RedgifsNichesExtractor, - "#pattern" : r"https://\w+\.redgifs\.com/[\w-]+\.mp4", + "#pattern" : r"https://\w+\.redgifs\.com/[\w-]+\.(mp4|jpg)", "#range" : "1-20", "#count" : 20, },