Loading searx/engines/openstreetmap.py +13 −0 Original line number Diff line number Diff line Loading @@ -10,7 +10,9 @@ @parse url, title """ import re from json import loads from flask_babel import gettext # engine dependent config categories = ['map'] Loading @@ -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' # noqa 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 Loading @@ -34,6 +41,12 @@ 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: Loading searx/engines/wikidata.py +6 −4 Original line number Diff line number Diff line Loading @@ -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): Loading searx/engines/youtube_noapi.py +4 −0 Original line number Diff line number Diff line Loading @@ -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}) Loading searx/plugins/self_info.py +2 −4 Original line number Diff line number Diff line Loading @@ -37,10 +37,8 @@ def post_search(request, search): ip = x_forwarded_for[0] else: ip = request.remote_addr search.result_container.answers.clear() search.result_container.answers.add(ip) search.result_container.answers['ip'] = {'answer': ip} elif p.match(search.search_query.query): ua = request.user_agent search.result_container.answers.clear() search.result_container.answers.add(ua) search.result_container.answers['user-agent'] = {'answer': ua} return True searx/results.py +2 −2 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ class ResultContainer(object): self._merged_results = [] self.infoboxes = [] self.suggestions = set() self.answers = set() self.answers = {} self.corrections = set() self._number_of_results = [] self._ordered = False Loading @@ -146,7 +146,7 @@ class ResultContainer(object): self.suggestions.add(result['suggestion']) results.remove(result) elif 'answer' in result: self.answers.add(result['answer']) self.answers[result['answer']] = result results.remove(result) elif 'correction' in result: self.corrections.add(result['correction']) Loading Loading
searx/engines/openstreetmap.py +13 −0 Original line number Diff line number Diff line Loading @@ -10,7 +10,9 @@ @parse url, title """ import re from json import loads from flask_babel import gettext # engine dependent config categories = ['map'] Loading @@ -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' # noqa 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 Loading @@ -34,6 +41,12 @@ 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: Loading
searx/engines/wikidata.py +6 −4 Original line number Diff line number Diff line Loading @@ -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): Loading
searx/engines/youtube_noapi.py +4 −0 Original line number Diff line number Diff line Loading @@ -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}) Loading
searx/plugins/self_info.py +2 −4 Original line number Diff line number Diff line Loading @@ -37,10 +37,8 @@ def post_search(request, search): ip = x_forwarded_for[0] else: ip = request.remote_addr search.result_container.answers.clear() search.result_container.answers.add(ip) search.result_container.answers['ip'] = {'answer': ip} elif p.match(search.search_query.query): ua = request.user_agent search.result_container.answers.clear() search.result_container.answers.add(ua) search.result_container.answers['user-agent'] = {'answer': ua} return True
searx/results.py +2 −2 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ class ResultContainer(object): self._merged_results = [] self.infoboxes = [] self.suggestions = set() self.answers = set() self.answers = {} self.corrections = set() self._number_of_results = [] self._ordered = False Loading @@ -146,7 +146,7 @@ class ResultContainer(object): self.suggestions.add(result['suggestion']) results.remove(result) elif 'answer' in result: self.answers.add(result['answer']) self.answers[result['answer']] = result results.remove(result) elif 'correction' in result: self.corrections.add(result['correction']) Loading