summaryrefslogtreecommitdiff
path: root/searx/engines/wikidata.py
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2025-03-01 10:49:11 +0100
committerMarkus Heiser <markus.heiser@darmarIT.de>2025-03-01 12:21:29 +0100
commit1d16b94279b252bb2e298a2afffb9561d8b5bd85 (patch)
tree4e4ba3db9dc6c879249be0629345b2969d18d511 /searx/engines/wikidata.py
parent30a820437da40cba2b1ca386564c8fc1ee6f92d1 (diff)
[fix] wikidata: increase wikidata queries timeout
The big queries for initializing and updating the currencies take longer than the default of the wikidata engine, which is only 3sec. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'searx/engines/wikidata.py')
-rw-r--r--searx/engines/wikidata.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/searx/engines/wikidata.py b/searx/engines/wikidata.py
index e411ecf54..5b5764d20 100644
--- a/searx/engines/wikidata.py
+++ b/searx/engines/wikidata.py
@@ -158,13 +158,13 @@ def get_label_for_entity(entity_id, language):
return name
-def send_wikidata_query(query, method='GET'):
+def send_wikidata_query(query, method='GET', **kwargs):
if method == 'GET':
# query will be cached by wikidata
- http_response = get(SPARQL_ENDPOINT_URL + '?' + urlencode({'query': query}), headers=get_headers())
+ http_response = get(SPARQL_ENDPOINT_URL + '?' + urlencode({'query': query}), headers=get_headers(), **kwargs)
else:
# query won't be cached by wikidata
- http_response = post(SPARQL_ENDPOINT_URL, data={'query': query}, headers=get_headers())
+ http_response = post(SPARQL_ENDPOINT_URL, data={'query': query}, headers=get_headers(), **kwargs)
if http_response.status_code != 200:
logger.debug('SPARQL endpoint error %s', http_response.content.decode())
logger.debug('request time %s', str(http_response.elapsed))
@@ -808,7 +808,7 @@ def init(engine_settings=None): # pylint: disable=unused-argument
if attribute.name not in WIKIDATA_PROPERTIES:
wikidata_property_names.append("wd:" + attribute.name)
query = QUERY_PROPERTY_NAMES.replace('%ATTRIBUTES%', " ".join(wikidata_property_names))
- jsonresponse = send_wikidata_query(query)
+ jsonresponse = send_wikidata_query(query, timeout=20)
for result in jsonresponse.get('results', {}).get('bindings', {}):
name = result['name']['value']
lang = result['name']['xml:lang']