@@ -16,13 +16,13 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
1616(C) 2013- by Adam Tauber, <asciimoo@gmail.com>
1717'''
1818
19−from os.path import realpath, dirname, splitext, join
19+from os.path import realpath, dirname
2020import sys
21−from imp import load_source
2221from flask_babel import gettext
2322from operator import itemgetter
2423from searx import settings
2524from searx import logger
25+from searx.utils import load_module
2626
2727
2828logger = logger.getChild('engines')
@@ -32,6 +32,7 @@ engine_dir = dirname(realpath(__file__))
3232engines = {}
3333
3434categories = {'general': []}
35+_initialized = False
3536
3637engine_shortcuts = {}
3738engine_default_args = {'paging': False,
@@ -46,16 +47,6 @@ engine_default_args = {'paging': False,
4647 'time_range_support': False}
4748
4849
49−def load_module(filename):
50− modname = splitext(filename)[0]
51− if modname in sys.modules:
52− del sys.modules[modname]
53− filepath = join(engine_dir, filename)
54− module = load_source(modname, filepath)
55− module.name = modname
56− return module
57−
58−
5950def load_engine(engine_data):
6051
6152 if '_' in engine_data['name']:
@@ -65,7 +56,7 @@ def load_engine(engine_data):
6556 engine_module = engine_data['engine']
6657
6758 try:
68− engine = load_module(engine_module + '.py')
59+ engine = load_module(engine_module + '.py', engine_dir)
6960 except:
7061 logger.exception('Cannot load engine "{}"'.format(engine_module))
7162 return None