diff --git a/searx/engines/brave.py b/searx/engines/brave.py index f1fad6292..adac37d8d 100644 --- a/searx/engines/brave.py +++ b/searx/engines/brave.py @@ -219,8 +219,7 @@ def response(resp): json_resp = json_data[1]['data']['body']['response'] if brave_category == 'news': - json_resp = json_resp['news'] - return _parse_news(json_resp) + return _parse_news(json_resp['news']) if brave_category == 'images': return _parse_images(json_resp) @@ -299,7 +298,7 @@ def _parse_news(json_resp): 'title': result['title'], 'content': result['description'], } - if result['thumbnail'] != "null": + if result['thumbnail'] is not None: item['img_src'] = result['thumbnail']['src'] result_list.append(item) diff --git a/searx/utils.py b/searx/utils.py index 9457ca87d..458cef7ea 100644 --- a/searx/utils.py +++ b/searx/utils.py @@ -40,6 +40,7 @@ _ECMA_UNESCAPE2_RE = re.compile(r'%([0-9a-fA-F]{2})', re.UNICODE) _JS_QUOTE_KEYS_RE = re.compile(r'([\{\s,])(\w+)(:)') _JS_VOID_RE = re.compile(r'void\s+[0-9]+|void\s*\([0-9]+\)') +_JS_DECIMAL_RE = re.compile(r":\s*\.") _STORAGE_UNIT_VALUE: Dict[str, int] = { 'TB': 1024 * 1024 * 1024 * 1024, @@ -699,7 +700,7 @@ def js_variable_to_python(js_variable): # replace simple quote by double quote parts[i] = '"' in_string = None - # + if not in_string: # replace void 0 by null # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void @@ -714,6 +715,7 @@ def js_variable_to_python(js_variable): # becomes # { "a": 12 } s = _JS_QUOTE_KEYS_RE.sub(r'\1"\2"\3', s) + s = _JS_DECIMAL_RE.sub(":0.", s) # replace the surogate character by colon s = s.replace(chr(1), ':') # load the JSON and return the result