logo

searx

Unnamed repository; edit this file 'description' to name the repository.
commit: 78365ffb8a083ca3e3ea905db12bdac9f273f460
parent: f82646f38605a999f22bc4662f591cd56d022170
Author: Adam Tauber <asciimoo@gmail.com>
Date:   Tue,  6 Jun 2017 22:20:20 +0200

[enh] add init function to engines which loads parallel

Diffstat:

searx/engines/__init__.py | 11++++++++++-
searx/engines/soundcloud.py | 7+++++--
searx/engines/wolframalpha_noapi.py | 3++-
3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py @@ -16,8 +16,9 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. (C) 2013- by Adam Tauber, <asciimoo@gmail.com> ''' -from os.path import realpath, dirname import sys +import threading +from os.path import realpath, dirname from flask_babel import gettext from operator import itemgetter from json import loads @@ -84,6 +85,14 @@ def load_engine(engine_data): for engine_attr in dir(engine): if engine_attr.startswith('_'): continue + if engine_attr == 'init': + init_fn = getattr(engine, engine_attr) + def engine_init(): + init_fn() + logger.debug('%s engine initialized', engine_data['name']) + logger.debug('Starting background initialization of %s engine', engine_data['name']) + threading.Thread(target=engine_init).start() + continue if getattr(engine, engine_attr) is None: logger.error('Missing engine config attribute: "{0}.{1}"' .format(engine.name, engine_attr)) diff --git a/searx/engines/soundcloud.py b/searx/engines/soundcloud.py @@ -41,6 +41,7 @@ embedded_url = '<iframe width="100%" height="166" ' +\ 'data-src="https://w.soundcloud.com/player/?url={uri}"></iframe>' cid_re = re.compile(r'client_id:"([^"]*)"', re.I | re.U) +guest_client_id = '' def get_client_id(): @@ -63,8 +64,10 @@ def get_client_id(): return "" -# api-key -guest_client_id = get_client_id() +def init(): + global guest_client_id + # api-key + guest_client_id = get_client_id() # do search-request diff --git a/searx/engines/wolframalpha_noapi.py b/searx/engines/wolframalpha_noapi.py @@ -55,7 +55,8 @@ def obtain_token(): return token -obtain_token() +def init(): + obtain_token() # do search-request