From a7ddb5f5fabddc1ec3f953eb327aadcdf55a43f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sat, 23 Oct 2021 02:57:21 +0200 Subject: [PATCH] [deviantart] update 'search' argument handling (fixes #1911) - use 'alltime' by default - support newer 'order' values (most-recent, this-week, etc) --- gallery_dl/extractor/deviantart.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/gallery_dl/extractor/deviantart.py b/gallery_dl/extractor/deviantart.py index 7dac770b..9846454f 100644 --- a/gallery_dl/extractor/deviantart.py +++ b/gallery_dl/extractor/deviantart.py @@ -746,29 +746,27 @@ class DeviantartPopularExtractor(DeviantartExtractor): def __init__(self, match): DeviantartExtractor.__init__(self, match) - self.search_term = self.time_range = self.category_path = None self.user = "" trange1, path, trange2, query = match.groups() - trange = trange1 or trange2 query = text.parse_query(query) - - if not trange: - trange = query.get("order") - - if path: - self.category_path = path.strip("/") - if trange: - if trange.startswith("popular-"): - trange = trange[8:] - self.time_range = trange.replace("-", "").replace("hours", "hr") - if query: - self.search_term = query.get("q") + self.search_term = query.get("q") + + trange = trange1 or trange2 or query.get("order", "") + if trange.startswith("popular-"): + trange = trange[8:] + self.time_range = { + "most-recent" : "now", + "this-week" : "1week", + "this-month" : "1month", + "this-century": "alltime", + "all-time" : "alltime", + }.get(trange, "alltime") self.popular = { "search": self.search_term or "", - "range" : trange or "", - "path" : self.category_path, + "range" : trange or "all-time", + "path" : path.strip("/") if path else "", } def deviations(self):