[deviantart] update 'search' argument handling (fixes #1911)

- use 'alltime' by default
- support newer 'order' values (most-recent, this-week, etc)
pull/1975/head
Mike Fährmann 3 years ago
parent c19e762fdf
commit a7ddb5f5fa
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -746,29 +746,27 @@ class DeviantartPopularExtractor(DeviantartExtractor):
def __init__(self, match): def __init__(self, match):
DeviantartExtractor.__init__(self, match) DeviantartExtractor.__init__(self, match)
self.search_term = self.time_range = self.category_path = None
self.user = "" self.user = ""
trange1, path, trange2, query = match.groups() trange1, path, trange2, query = match.groups()
trange = trange1 or trange2
query = text.parse_query(query) query = text.parse_query(query)
self.search_term = query.get("q")
if not trange: trange = trange1 or trange2 or query.get("order", "")
trange = query.get("order")
if path:
self.category_path = path.strip("/")
if trange:
if trange.startswith("popular-"): if trange.startswith("popular-"):
trange = trange[8:] trange = trange[8:]
self.time_range = trange.replace("-", "").replace("hours", "hr") self.time_range = {
if query: "most-recent" : "now",
self.search_term = query.get("q") "this-week" : "1week",
"this-month" : "1month",
"this-century": "alltime",
"all-time" : "alltime",
}.get(trange, "alltime")
self.popular = { self.popular = {
"search": self.search_term or "", "search": self.search_term or "",
"range" : trange or "", "range" : trange or "all-time",
"path" : self.category_path, "path" : path.strip("/") if path else "",
} }
def deviations(self): def deviations(self):

Loading…
Cancel
Save