From 0171db5c3f6aca3e60af8b9e288dd6ea541e3e0c Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Fri, 23 Dec 2016 12:59:03 +0100 Subject: [fix] handle missing images in google news --- searx/engines/google_news.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'searx/engines') diff --git a/searx/engines/google_news.py b/searx/engines/google_news.py index 37253c6a7..11357f3e6 100644 --- a/searx/engines/google_news.py +++ b/searx/engines/google_news.py @@ -70,9 +70,9 @@ def response(resp): 'content': ''.join(result.xpath('.//div[@class="st"]//text()')), } - img = result.xpath('.//img/@src')[0] - if img and not img.startswith('data'): - r['img_src'] = img + imgs = result.xpath('.//img/@src') + if len(imgs) and not imgs[0].startswith('data'): + r['img_src'] = imgs[0] results.append(r) -- cgit v1.2.3 From b6fc1546160285a2e0049d20cbd7e64269db1875 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Sat, 24 Dec 2016 22:23:36 +0100 Subject: [enh] add searx engine --- searx/engines/searx_engine.py | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 searx/engines/searx_engine.py (limited to 'searx/engines') diff --git a/searx/engines/searx_engine.py b/searx/engines/searx_engine.py new file mode 100644 index 000000000..91c264498 --- /dev/null +++ b/searx/engines/searx_engine.py @@ -0,0 +1,57 @@ +""" + Searx (all) + + @website https://github.com/asciimoo/searx + @provide-api yes (https://asciimoo.ithub.io/searx/dev/search_api.html) + + @using-api yes + @results JSON + @stable yes (using api) + @parse url, title, content +""" + +from json import loads +from searx.engines import categories as searx_categories + + +categories = searx_categories.keys() + +# search-url +instance_urls = [] +instance_index = 0 + + +# do search-request +def request(query, params): + global instance_index + params['url'] = instance_urls[instance_index % len(instance_urls)] + params['method'] = 'POST' + + instance_index += 1 + + params['data'] = { + 'q': query, + 'pageno': params['pageno'], + 'language': params['language'], + 'time_range': params['time_range'], + 'category': params['category'], + 'format': 'json' + } + + return params + + +# get response from search-request +def response(resp): + + response_json = loads(resp.text) + results = response_json['results'] + + for i in ('answers', 'infoboxes'): + results.extend(response_json[i]) + + results.extend({'suggestion': s} for s in response_json['suggestions']) + + results.append({'number_of_results': response_json['number_of_results']}) + + return results -- cgit v1.2.3 From a605377c40e5f9d5ce80a222df65b605dfcd3907 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 27 Dec 2016 17:25:19 +0100 Subject: [enh] explicit engine init --- searx/engines/__init__.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'searx/engines') diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index 87b1b0eb4..d3a57c32b 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -32,7 +32,6 @@ engine_dir = dirname(realpath(__file__)) engines = {} categories = {'general': []} -_initialized = False engine_shortcuts = {} engine_default_args = {'paging': False, @@ -202,11 +201,10 @@ def get_engines_stats(): ] -if 'engines' not in settings or not settings['engines']: - logger.error('No engines found. Edit your settings.yml') - exit(2) - -for engine_data in settings['engines']: - engine = load_engine(engine_data) - if engine is not None: +def initialize_engines(engine_list): + global categories, engines + engines = {} + categories = {'general': []} + for engine_data in engine_list: + engine = load_engine(engine_data) engines[engine.name] = engine -- cgit v1.2.3 From ea034fafa994227ea89662710901e73cb901e28c Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 27 Dec 2016 17:55:44 +0100 Subject: [fix] proper engine init --- searx/engines/__init__.py | 3 --- 1 file changed, 3 deletions(-) (limited to 'searx/engines') diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index d3a57c32b..3a1db2760 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -202,9 +202,6 @@ def get_engines_stats(): def initialize_engines(engine_list): - global categories, engines - engines = {} - categories = {'general': []} for engine_data in engine_list: engine = load_engine(engine_data) engines[engine.name] = engine -- cgit v1.2.3