diff options
| author | Markus Heiser <markus.heiser@darmarIT.de> | 2019-12-29 09:47:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-29 09:47:06 +0100 |
| commit | 36e72a46192235615f63a02984ab88c70145b0ec (patch) | |
| tree | 0c2e238ed8fd03a95a090692d0d761fe2ea13d79 /searx/query.py | |
| parent | b2e1ee8d35050033b41765a2de49c0eea5f8b4b4 (diff) | |
| parent | f6d66c0f6f1d8f1f583d9000ee0123450cce8130 (diff) | |
Merge branch 'master' into fix-engine-spotify
Diffstat (limited to 'searx/query.py')
| -rw-r--r-- | searx/query.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/searx/query.py b/searx/query.py index 5265ac914..c4002bd31 100644 --- a/searx/query.py +++ b/searx/query.py @@ -43,6 +43,7 @@ class RawTextQuery(object): self.query_parts = [] self.engines = [] self.languages = [] + self.timeout_limit = None self.specific = False # parse query, if tags are set, which @@ -69,6 +70,21 @@ class RawTextQuery(object): self.query_parts.append(query_part) continue + # this force the timeout + if query_part[0] == '<': + try: + raw_timeout_limit = int(query_part[1:]) + if raw_timeout_limit < 100: + # below 100, the unit is the second ( <3 = 3 seconds timeout ) + self.timeout_limit = float(raw_timeout_limit) + else: + # 100 or above, the unit is the millisecond ( <850 = 850 milliseconds timeout ) + self.timeout_limit = raw_timeout_limit / 1000.0 + parse_next = True + except ValueError: + # error not reported to the user + pass + # this force a language if query_part[0] == ':': lang = query_part[1:].lower().replace('_', '-') @@ -161,14 +177,15 @@ class RawTextQuery(object): class SearchQuery(object): """container for all the search parameters (query, language, etc...)""" - def __init__(self, query, engines, categories, lang, safesearch, pageno, time_range): + def __init__(self, query, engines, categories, lang, safesearch, pageno, time_range, timeout_limit=None): self.query = query.encode('utf-8') self.engines = engines self.categories = categories self.lang = lang self.safesearch = safesearch self.pageno = pageno - self.time_range = time_range + self.time_range = None if time_range in ('', 'None', None) else time_range + self.timeout_limit = timeout_limit def __str__(self): return str(self.query) + ";" + str(self.engines) |