Browse Source

[upd] wikipedia engine: return an empty result on query with illegal characters

on some queries (like an IT error message), wikipedia returns an HTTP error 400.
this commit returns an empty result instead of showing an error to the user.
Alexandre Flament 4 years ago
parent
commit
7d6e69e2f9
1 changed files with 11 additions and 0 deletions
  1. 11 0
      searx/engines/wikipedia.py

+ 11 - 0
searx/engines/wikipedia.py

@@ -56,6 +56,17 @@ def request(query, params):
 def response(resp):
     if resp.status_code == 404:
         return []
+
+    if resp.status_code == 400:
+        try:
+            api_result = loads(resp.text)
+        except:
+            pass
+        else:
+            if api_result['type'] == 'https://mediawiki.org/wiki/HyperSwitch/errors/bad_request' \
+               and api_result['detail'] == 'title-invalid-characters':
+                return []
+
     raise_for_httperror(resp)
 
     results = []