[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>
This commit is contained in:
Markus Heiser 2025-03-01 10:49:11 +01:00 committed by Markus Heiser
parent 30a820437d
commit 1d16b94279
5 changed files with 38 additions and 18 deletions

View File

@ -75,7 +75,7 @@ test.shell:
# wrap ./manage script # wrap ./manage script
MANAGE += weblate.translations.commit weblate.push.translations MANAGE += weblate.translations.commit weblate.push.translations
MANAGE += data.all data.traits data.useragents data.locales MANAGE += data.all data.traits data.useragents data.locales data.currencies
MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean
MANAGE += docker.build docker.push docker.buildx MANAGE += docker.build docker.push docker.buildx
MANAGE += gecko.driver MANAGE += gecko.driver

View File

@ -1557,7 +1557,7 @@
"ar": "بيزو دومنيكاني", "ar": "بيزو دومنيكاني",
"bg": "Доминиканско песо", "bg": "Доминиканско песо",
"ca": "peso dominicà", "ca": "peso dominicà",
"cs": "Dominikánské peso", "cs": "dominikánské peso",
"cy": "Peso Dominica", "cy": "Peso Dominica",
"de": "dominikanischer Peso", "de": "dominikanischer Peso",
"en": "Dominican peso", "en": "Dominican peso",
@ -1582,7 +1582,7 @@
"pt": "peso dominicano", "pt": "peso dominicano",
"ro": "peso dominican", "ro": "peso dominican",
"ru": "доминиканское песо", "ru": "доминиканское песо",
"sk": "Dominikánske peso", "sk": "dominikánske peso",
"sl": "dominikanski peso", "sl": "dominikanski peso",
"sr": "доминикански пезос", "sr": "доминикански пезос",
"sv": "Dominikansk peso", "sv": "Dominikansk peso",
@ -1809,7 +1809,7 @@
"fi": "Fidžin dollari", "fi": "Fidžin dollari",
"fr": "dollar des Fidji", "fr": "dollar des Fidji",
"ga": "dollar Fhidsí", "ga": "dollar Fhidsí",
"gl": "Dólar fidxiano", "gl": "Dólar fijiano",
"he": "דולר פיג'י", "he": "דולר פיג'י",
"hr": "Fidžijski dolar", "hr": "Fidžijski dolar",
"hu": "fidzsi dollár", "hu": "fidzsi dollár",
@ -1921,7 +1921,7 @@
"ar": "لاري جورجي", "ar": "لاري جورجي",
"bg": "Грузинско лари", "bg": "Грузинско лари",
"ca": "lari", "ca": "lari",
"cs": "gruzínské lari", "cs": "gruzínský lari",
"da": "Lari", "da": "Lari",
"de": "georgischer Lari", "de": "georgischer Lari",
"en": "Georgian lari", "en": "Georgian lari",
@ -3308,7 +3308,7 @@
"ar": "درهم مغربي", "ar": "درهم مغربي",
"bg": "Марокански дирхам", "bg": "Марокански дирхам",
"ca": "dírham marroquí", "ca": "dírham marroquí",
"cs": "Marocký dirham", "cs": "marocký dirham",
"cy": "Dirham Moroco", "cy": "Dirham Moroco",
"de": "Marokkanischer Dirham", "de": "Marokkanischer Dirham",
"en": "Moroccan dirham", "en": "Moroccan dirham",
@ -3776,6 +3776,7 @@
"en": "Malaysian ringgit", "en": "Malaysian ringgit",
"eo": "malajzia ringito", "eo": "malajzia ringito",
"es": "ringgit", "es": "ringgit",
"et": "Ringgit",
"eu": "Ringgit", "eu": "Ringgit",
"fi": "Malesian ringgit", "fi": "Malesian ringgit",
"fr": "ringgit", "fr": "ringgit",
@ -3885,12 +3886,13 @@
"bg": "Нигерийска найра", "bg": "Нигерийска найра",
"ca": "naira", "ca": "naira",
"cs": "nigerijská naira", "cs": "nigerijská naira",
"cy": "naira",
"de": "Naira", "de": "Naira",
"en": "naira", "en": "naira",
"eo": "niĝeria najro", "eo": "niĝeria najro",
"es": "naira", "es": "naira",
"fi": "Nigerian naira", "fi": "Nigerian naira",
"fr": "Naira", "fr": "naira",
"ga": "naira", "ga": "naira",
"gl": "Naira", "gl": "Naira",
"he": "נאירה", "he": "נאירה",
@ -4412,7 +4414,7 @@
"ar": "غواراني باراغواي", "ar": "غواراني باراغواي",
"ca": "guaraní", "ca": "guaraní",
"cs": "paraguayský guaraní", "cs": "paraguayský guaraní",
"cy": "Gwarani Paragwâi", "cy": "Gwarani Paragwái",
"de": "Paraguayischer Guaraní", "de": "Paraguayischer Guaraní",
"en": "Paraguayan guaraní", "en": "Paraguayan guaraní",
"eo": "paragvaja gvaranio", "eo": "paragvaja gvaranio",
@ -6284,6 +6286,7 @@
"es": "Oro de Zimbabue", "es": "Oro de Zimbabue",
"fi": "Zimbabwen kulta", "fi": "Zimbabwen kulta",
"fr": "or du Zimbabwe", "fr": "or du Zimbabwe",
"hr": "zimbabveanski gold",
"id": "Zimbabwe Gold", "id": "Zimbabwe Gold",
"it": "Zimbabwe Gold", "it": "Zimbabwe Gold",
"ja": "ジンバブエ・ゴールド", "ja": "ジンバブエ・ゴールド",
@ -6459,7 +6462,6 @@
"NT$": "TWD", "NT$": "TWD",
"NZ$": "NZD", "NZ$": "NZD",
"Nfk": "ERN", "Nfk": "ERN",
"Noha heinen krasss": "EUR",
"Nu": "BTN", "Nu": "BTN",
"N₨": "NPR", "N₨": "NPR",
"P": "BWP", "P": "BWP",
@ -8146,7 +8148,6 @@
"dólar dos barbados": "BBD", "dólar dos barbados": "BBD",
"dólar dos estados unidos": "USD", "dólar dos estados unidos": "USD",
"dólar estadounidense": "USD", "dólar estadounidense": "USD",
"dólar fidxiano": "FJD",
"dólar fijiano": "FJD", "dólar fijiano": "FJD",
"dólar fixiano": "FJD", "dólar fixiano": "FJD",
"dólar fiyiano": "FJD", "dólar fiyiano": "FJD",
@ -8832,7 +8833,7 @@
"gvinejski franak": "GNF", "gvinejski franak": "GNF",
"gvinejski frank": "GNF", "gvinejski frank": "GNF",
"gvinėjos frankas": "GNF", "gvinėjos frankas": "GNF",
"gwarani paragwâi": "PYG", "gwarani paragwái": "PYG",
"gy$": "GYD", "gy$": "GYD",
"gyd": "GYD", "gyd": "GYD",
"ĝibraltara pundo": "GIP", "ĝibraltara pundo": "GIP",
@ -10186,6 +10187,8 @@
"naira nigeriana": "NGN", "naira nigeriana": "NGN",
"naira nigeriano": "NGN", "naira nigeriano": "NGN",
"naira nigérian": "NGN", "naira nigérian": "NGN",
"naïra": "NGN",
"naïra nigérian": "NGN",
"najro": "NGN", "najro": "NGN",
"nakfa": "ERN", "nakfa": "ERN",
"nakfa eritrea": "ERN", "nakfa eritrea": "ERN",
@ -12442,6 +12445,7 @@
"zimbabva dolaro": "ZWL", "zimbabva dolaro": "ZWL",
"zimbabva oro": "ZWG", "zimbabva oro": "ZWG",
"zimbabve altını": "ZWG", "zimbabve altını": "ZWG",
"zimbabveanski gold": "ZWG",
"zimbabvejski dolar": "ZWL", "zimbabvejski dolar": "ZWL",
"zimbabvejski gold": "ZWG", "zimbabvejski gold": "ZWG",
"zimbabwaanse dollar": "ZWL", "zimbabwaanse dollar": "ZWL",
@ -13060,6 +13064,7 @@
"джибутийский франк": "DJF", "джибутийский франк": "DJF",
"джибутски франк": "DJF", "джибутски франк": "DJF",
"дин": "RSD", "дин": "RSD",
"дин.": "RSD",
"динар": [ "динар": [
"TND", "TND",
"RSD", "RSD",
@ -14304,7 +14309,9 @@
"الروبل": "RUB", "الروبل": "RUB",
"الروبل الروسي": "RUB", "الروبل الروسي": "RUB",
"الروبية الهندية": "INR", "الروبية الهندية": "INR",
"الريال السعودي": "SAR",
"الشيكل الإسرائيلي الجديد": "ILS", "الشيكل الإسرائيلي الجديد": "ILS",
"العملة السعودية": "SAR",
"العملة الموريتانية": "MRU", "العملة الموريتانية": "MRU",
"الفرنك الجيبوتي": "DJF", "الفرنك الجيبوتي": "DJF",
"الفرنك السويسري": "CHF", "الفرنك السويسري": "CHF",
@ -14465,6 +14472,8 @@
"روفيه": "MVR", "روفيه": "MVR",
"روفيه مالديفية": "MVR", "روفيه مالديفية": "MVR",
"ريال": "YER", "ريال": "YER",
"ريال السعودية": "SAR",
"ريال المملكة العربية السعودية": "SAR",
"ريال إيراني": "IRR", "ريال إيراني": "IRR",
"ريال برازيلي": "BRL", "ريال برازيلي": "BRL",
"ريال سعودي": "SAR", "ريال سعودي": "SAR",
@ -14473,6 +14482,7 @@
"ريال قطري": "QAR", "ريال قطري": "QAR",
"ريال كمبودي": "KHR", "ريال كمبودي": "KHR",
"ريال يمني": "YER", "ريال يمني": "YER",
"ريالات": "SAR",
"رينغيت": "MYR", "رينغيت": "MYR",
"رينغيت ماليزي": "MYR", "رينغيت ماليزي": "MYR",
"ریال": [ "ریال": [
@ -14525,6 +14535,8 @@
"شيلينغ تنزاني": "TZS", "شيلينغ تنزاني": "TZS",
"شيلينغ كيني": "KES", "شيلينغ كيني": "KES",
"شيلينغ كينيي": "KES", "شيلينغ كينيي": "KES",
"عملة السعودية": "SAR",
"عملة المملكة العربية السعودية": "SAR",
"غواراني": "PYG", "غواراني": "PYG",
"غواراني باراغواي": "PYG", "غواراني باراغواي": "PYG",
"غيلدر الأنتيل الهولندية": "ANG", "غيلدر الأنتيل الهولندية": "ANG",
@ -15778,7 +15790,6 @@
"香港元": "HKD", "香港元": "HKD",
"﷼": [ "﷼": [
"YER", "YER",
"SAR",
"IRR" "IRR"
], ],
"﷼'": "YER" "﷼'": "YER"

View File

@ -158,13 +158,13 @@ def get_label_for_entity(entity_id, language):
return name return name
def send_wikidata_query(query, method='GET'): def send_wikidata_query(query, method='GET', **kwargs):
if method == 'GET': if method == 'GET':
# query will be cached by wikidata # 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: else:
# query won't be cached by wikidata # 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: if http_response.status_code != 200:
logger.debug('SPARQL endpoint error %s', http_response.content.decode()) logger.debug('SPARQL endpoint error %s', http_response.content.decode())
logger.debug('request time %s', str(http_response.elapsed)) 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: if attribute.name not in WIKIDATA_PROPERTIES:
wikidata_property_names.append("wd:" + attribute.name) wikidata_property_names.append("wd:" + attribute.name)
query = QUERY_PROPERTY_NAMES.replace('%ATTRIBUTES%', " ".join(wikidata_property_names)) 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', {}): for result in jsonresponse.get('results', {}).get('bindings', {}):
name = result['name']['value'] name = result['name']['value']
lang = result['name']['xml:lang'] lang = result['name']['xml:lang']

View File

@ -92,8 +92,7 @@ def add_currency_label(db, label, iso4217, language):
def wikidata_request_result_iterator(request): def wikidata_request_result_iterator(request):
wikidata.timeout = 30 # github CI has longer timeouts result = wikidata.send_wikidata_query(request.replace('%LANGUAGES_SPARQL%', LANGUAGES_SPARQL), timeout=20)
result = wikidata.send_wikidata_query(request.replace('%LANGUAGES_SPARQL%', LANGUAGES_SPARQL))
if result is not None: if result is not None:
yield from result['results']['bindings'] yield from result['results']['bindings']

View File

@ -8,6 +8,7 @@ data.:
traits : update searx/data/engine_traits.json & searx/sxng_locales.py traits : update searx/data/engine_traits.json & searx/sxng_locales.py
useragents: update searx/data/useragents.json with the most recent versions of Firefox useragents: update searx/data/useragents.json with the most recent versions of Firefox
locales : update searx/data/locales.json from babel locales : update searx/data/locales.json from babel
currencies: update searx/data/currencies.json from wikidata
EOF EOF
} }
@ -59,3 +60,12 @@ data.locales() {
) )
dump_return $? dump_return $?
} }
data.currencies(){
( set -e
pyenv.activate
build_msg DATA "update searx/data/currencies.json"
python searxng_extra/update/update_currencies.py
)
dump_return $?
}