on master help sign in
[enh] new engine: openstreetmap
commit3319091496c084dbdd9f9b060a83a6052c5fc5cd authorAdam Tauber <asciimoo@gmail.com> dateSat 6 Sep 2014, 14:09 (12 years ago) parentf72255e
1 file changed+47
searx/engines/openstreetmap.py+47
searx/engines/openstreetmap.pynew file+47
@@ -0,0 +1,47 @@
1+## OpenStreetMap (Map)
2+#
3+# @website https://openstreetmap.org/
4+# @provide-api yes (http://wiki.openstreetmap.org/wiki/Nominatim)
5+#
6+# @using-api yes
7+# @results JSON
8+# @stable yes
9+# @parse url, title
10+
11+from json import loads
12+
13+# engine dependent config
14+categories = ['map']
15+paging = False
16+
17+# search-url
18+url = 'https://nominatim.openstreetmap.org/search/{query}?format=json'
19+
20+result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}'
21+
22+
23+# do search-request
24+def request(query, params):
25+ params['url'] = url.format(query=query)
26+
27+ return params
28+
29+
30+# get response from search-request
31+def response(resp):
32+ results = []
33+ json = loads(resp.text)
34+
35+ # parse results
36+ for r in json:
37+ title = r['display_name']
38+ osm_type = r.get('osm_type', r.get('type'))
39+ url = result_base_url.format(osm_type=osm_type,
40+ osm_id=r['osm_id'])
41+ # append result
42+ results.append({'title': title,
43+ 'content': '',
44+ 'url': url})
45+
46+ # return results
47+ return results