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