aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/furaffinity.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/furaffinity.py')
-rw-r--r--gallery_dl/extractor/furaffinity.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/gallery_dl/extractor/furaffinity.py b/gallery_dl/extractor/furaffinity.py
index 8c2887e..9516dfa 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):