on master help sign in
[fix] dates before 1900
commitd7ea44ab8dd7f728ce19589b48618d7eb1669170 authorAdam Tauber <asciimoo@gmail.com> dateSun 11 Jan 2015, 13:26 (12 years ago) parent23fa74b
1 file changed+6−16
searx/engines/wikidata.py+6−16
searx/engines/wikidata.py+6−16
@@ -1,8 +1,7 @@
11import json
22from requests import get
33from urllib import urlencode
4−import locale
5−import dateutil.parser
4+from searx.utils import format_date_by_locale
65
76result_count = 1
87wikidata_host = 'https://www.wikidata.org'
@@ -38,27 +37,18 @@ def response(resp):
3837 if language == 'all':
3938 language = 'en'
4039
41− try:
42− locale.setlocale(locale.LC_ALL, str(resp.search_params['language']))
43− except:
44− try:
45− locale.setlocale(locale.LC_ALL, 'en_US')
46− except:
47− pass
48− pass
49−
5040 url = url_detail.format(query=urlencode({'ids': '|'.join(wikidata_ids),
5141 'languages': language + '|en'}))
5242
5343 htmlresponse = get(url)
5444 jsonresponse = json.loads(htmlresponse.content)
5545 for wikidata_id in wikidata_ids:
56− results = results + getDetail(jsonresponse, wikidata_id, language)
46+ results = results + getDetail(jsonresponse, wikidata_id, language, resp.search_params['language'])
5747
5848 return results
5949
6050
61−def getDetail(jsonresponse, wikidata_id, language):
51+def getDetail(jsonresponse, wikidata_id, language, locale):
6252 results = []
6353 urls = []
6454 attributes = []
@@ -176,12 +166,12 @@ def getDetail(jsonresponse, wikidata_id, language):
176166
177167 date_of_birth = get_time(claims, 'P569', None)
178168 if date_of_birth is not None:
179− date_of_birth = dateutil.parser.parse(date_of_birth[8:]).strftime(locale.nl_langinfo(locale.D_FMT))
169+ date_of_birth = format_date_by_locale(date_of_birth[8:], locale)
180170 attributes.append({'label': 'Date of birth', 'value': date_of_birth})
181171
182172 date_of_death = get_time(claims, 'P570', None)
183173 if date_of_death is not None:
184− date_of_death = dateutil.parser.parse(date_of_death[8:]).strftime(locale.nl_langinfo(locale.D_FMT))
174+ date_of_death = format_date_by_locale(date_of_death[8:], locale)
185175 attributes.append({'label': 'Date of death', 'value': date_of_death})
186176
187177 if len(attributes) == 0 and len(urls) == 2 and len(description) == 0:
@@ -235,7 +225,7 @@ def get_string(claims, propertyName, defaultValue=None):
235225 if len(result) == 0:
236226 return defaultValue
237227 else:
238− #TODO handle multiple urls
228+ # TODO handle multiple urls
239229 return result[0]
240230
241231