From 2c6531b2330a5c8ca986379dbad8812a6c6d3e49 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 9 Jun 2020 17:01:59 +0200 Subject: [enh] add routing directions to osm search - closes #254 --- searx/engines/openstreetmap.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'searx/engines') diff --git a/searx/engines/openstreetmap.py b/searx/engines/openstreetmap.py index cec10a3c7..011523433 100644 --- a/searx/engines/openstreetmap.py +++ b/searx/engines/openstreetmap.py @@ -10,7 +10,9 @@ @parse url, title """ +import re from json import loads +from flask_babel import gettext # engine dependent config categories = ['map'] @@ -21,10 +23,15 @@ base_url = 'https://nominatim.openstreetmap.org/' search_string = 'search/{query}?format=json&polygon_geojson=1&addressdetails=1' result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}' +route_url = 'https://graphhopper.com/maps/?point={}&point={}&locale=en-US&vehicle=car&weighting=fastest&turn_costs=true&use_miles=false&layer=Omniscale' +route_re = re.compile('(?:from )?(.+) to (.+)') + # do search-request def request(query, params): + params['url'] = base_url + search_string.format(query=query.decode('utf-8')) + params['route'] = route_re.match(query.decode('utf-8')) return params @@ -34,6 +41,13 @@ def response(resp): results = [] json = loads(resp.text) + + if resp.search_params['route']: + results.append({ + 'answer': gettext('Get directions'), + 'url': route_url.format(*resp.search_params['route'].groups()), + }) + # parse results for r in json: if 'display_name' not in r: -- cgit v1.2.3 From 6c062862513dcaeebeb497ba1c61ea83e3a9e50b Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 9 Jun 2020 20:31:51 +0200 Subject: [enh] add length and author details to youtube videos closes #775 --- searx/engines/youtube_noapi.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'searx/engines') diff --git a/searx/engines/youtube_noapi.py b/searx/engines/youtube_noapi.py index 49d0ae604..68a3739a2 100644 --- a/searx/engines/youtube_noapi.py +++ b/searx/engines/youtube_noapi.py @@ -70,11 +70,15 @@ def response(resp): title = get_text_from_json(video.get('title', {})) content = get_text_from_json(video.get('descriptionSnippet', {})) embedded = embedded_url.format(videoid=videoid) + author = get_text_from_json(video.get('ownerText', {})) + length = get_text_from_json(video.get('lengthText', {})) # append result results.append({'url': url, 'title': title, 'content': content, + 'author': author, + 'length': length, 'template': 'videos.html', 'embedded': embedded, 'thumbnail': thumbnail}) -- cgit v1.2.3 From 29960aa1d912f365846731c9aca166b5b7879d02 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 9 Jun 2020 23:49:13 +0200 Subject: [enh] add official site link to the top of the infobox - closes #1644 --- searx/engines/wikidata.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'searx/engines') diff --git a/searx/engines/wikidata.py b/searx/engines/wikidata.py index e913b3915..9d6238d8b 100644 --- a/searx/engines/wikidata.py +++ b/searx/engines/wikidata.py @@ -414,11 +414,13 @@ def add_url(urls, result, id_cache, property_id=None, default_label=None, url_pr # append urls for url in links: if url is not None: - urls.append({'title': default_label or label, - 'url': url}) + u = {'title': default_label or label, 'url': url} + if property_id == 'P856': + u['official'] = True + u['domain'] = url.split('/')[2] + urls.append(u) if results is not None: - results.append({'title': default_label or label, - 'url': url}) + results.append(u) def get_imdblink(result, url_prefix): -- cgit v1.2.3 From aa7c043ff40bd1c1ec2e81748627aeac24608580 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Wed, 10 Jun 2020 00:34:57 +0200 Subject: [fix] resolve pep8 errors --- searx/engines/openstreetmap.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'searx/engines') diff --git a/searx/engines/openstreetmap.py b/searx/engines/openstreetmap.py index 011523433..257b1a1b3 100644 --- a/searx/engines/openstreetmap.py +++ b/searx/engines/openstreetmap.py @@ -23,7 +23,7 @@ base_url = 'https://nominatim.openstreetmap.org/' search_string = 'search/{query}?format=json&polygon_geojson=1&addressdetails=1' result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}' -route_url = 'https://graphhopper.com/maps/?point={}&point={}&locale=en-US&vehicle=car&weighting=fastest&turn_costs=true&use_miles=false&layer=Omniscale' +route_url = 'https://graphhopper.com/maps/?point={}&point={}&locale=en-US&vehicle=car&weighting=fastest&turn_costs=true&use_miles=false&layer=Omniscale' # noqa route_re = re.compile('(?:from )?(.+) to (.+)') @@ -41,7 +41,6 @@ def response(resp): results = [] json = loads(resp.text) - if resp.search_params['route']: results.append({ 'answer': gettext('Get directions'), -- cgit v1.2.3