|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
|
"""
|
|
|
|
|
OpenStreetMap (Map)
|
|
|
|
|
"""
|
|
|
|
|
# lint: pylint
|
|
|
|
|
"""OpenStreetMap (Map)
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
# pylint: disable=missing-function-docstring
|
|
|
|
|
|
|
|
|
|
import re
|
|
|
|
@ -151,16 +151,13 @@ def response(resp):
|
|
|
|
|
user_language = resp.search_params['language']
|
|
|
|
|
|
|
|
|
|
if resp.search_params['route']:
|
|
|
|
|
results.append(
|
|
|
|
|
{
|
|
|
|
|
results.append({
|
|
|
|
|
'answer': gettext('Get directions'),
|
|
|
|
|
'url': route_url.format(*resp.search_params['route'].groups()),
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
fetch_wikidata(nominatim_json, user_language)
|
|
|
|
|
|
|
|
|
|
# parse results
|
|
|
|
|
for result in nominatim_json:
|
|
|
|
|
title, address = get_title_address(result)
|
|
|
|
|
|
|
|
|
@ -173,9 +170,7 @@ def response(resp):
|
|
|
|
|
links, link_keys = get_links(result, user_language)
|
|
|
|
|
data = get_data(result, user_language, link_keys)
|
|
|
|
|
|
|
|
|
|
# append result
|
|
|
|
|
results.append(
|
|
|
|
|
{
|
|
|
|
|
results.append({
|
|
|
|
|
'template': 'map.html',
|
|
|
|
|
'title': title,
|
|
|
|
|
'address': address,
|
|
|
|
@ -186,16 +181,16 @@ def response(resp):
|
|
|
|
|
'img_src': img_src,
|
|
|
|
|
'links': links,
|
|
|
|
|
'data': data,
|
|
|
|
|
'type': get_tag_label(result.get('category'), result.get('type', ''), user_language),
|
|
|
|
|
'type': get_tag_label(
|
|
|
|
|
result.get('category'), result.get('type', ''), user_language
|
|
|
|
|
),
|
|
|
|
|
'type_icon': result.get('icon'),
|
|
|
|
|
'content': '',
|
|
|
|
|
'longitude': result['lon'],
|
|
|
|
|
'latitude': result['lat'],
|
|
|
|
|
'boundingbox': result['boundingbox'],
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
# return results
|
|
|
|
|
return results
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -353,13 +348,11 @@ def get_links(result, user_language):
|
|
|
|
|
url, url_label = mapping_function(raw_value)
|
|
|
|
|
if url.startswith('https://wikidata.org'):
|
|
|
|
|
url_label = result.get('wikidata', {}).get('itemLabel') or url_label
|
|
|
|
|
links.append(
|
|
|
|
|
{
|
|
|
|
|
links.append({
|
|
|
|
|
'label': get_key_label(k, user_language),
|
|
|
|
|
'url': url,
|
|
|
|
|
'url_label': url_label,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
link_keys.add(k)
|
|
|
|
|
return links, link_keys
|
|
|
|
|
|
|
|
|
@ -379,13 +372,11 @@ def get_data(result, user_language, ignore_keys):
|
|
|
|
|
continue
|
|
|
|
|
k_label = get_key_label(k, user_language)
|
|
|
|
|
if k_label:
|
|
|
|
|
data.append(
|
|
|
|
|
{
|
|
|
|
|
data.append({
|
|
|
|
|
'label': k_label,
|
|
|
|
|
'key': k,
|
|
|
|
|
'value': v,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
data.sort(key=lambda entry: (get_key_rank(entry['key']), entry['label']))
|
|
|
|
|
return data
|
|
|
|
|
|
|
|
|
|