From 6b229ac8290c14eaf7e844dcc7fec7eaad0e71f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 23 Aug 2021 23:38:52 +0200 Subject: [PATCH] [furaffinity] expand URL pattern for searches (closes #1780) --- gallery_dl/extractor/furaffinity.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/gallery_dl/extractor/furaffinity.py b/gallery_dl/extractor/furaffinity.py index 8c2887ec..9516dfa0 100644 --- a/gallery_dl/extractor/furaffinity.py +++ b/gallery_dl/extractor/furaffinity.py @@ -232,16 +232,27 @@ class FuraffinitySearchExtractor(FuraffinityExtractor): """Extractor for furaffinity search results""" subcategory = "search" directory_fmt = ("{category}", "Search", "{search}") - pattern = BASE_PATTERN + r"/search/?\?([^#]+)" - test = ("https://www.furaffinity.net/search/?q=cute", { - "pattern": r"https://d\d?\.f(uraffinity|acdn)\.net" - r"/art/[^/]+/\d+/\d+.\w+\.\w+", - "range": "45-50", - "count": 6, - }) + pattern = BASE_PATTERN + r"/search(?:/([^/?#]+))?/?[?&]([^#]+)" + test = ( + ("https://www.furaffinity.net/search/?q=cute", { + "pattern": r"https://d\d?\.f(uraffinity|acdn)\.net" + r"/art/[^/]+/\d+/\d+.\w+\.\w+", + "range": "45-50", + "count": 6, + }), + ("https://www.furaffinity.net/search/cute&rating-general=0", { + "range": "1", + "count": 1, + }), + ) + + def __init__(self, match): + FuraffinityExtractor.__init__(self, match) + self.query = text.parse_query(match.group(2)) + if self.user and "q" not in self.query: + self.query["q"] = text.unescape(self.user) def metadata(self): - self.query = text.parse_query(self.user) return {"search": self.query.get("q")} def posts(self):