on master help sign in
[enh] shortcut support added to engines
commit88425f05d6c0e6124c625e52c684ef57f6a46827 authorasciimoo <asciimoo@gmail.com> dateFri 31 Jan 2014, 15:45 (13 years ago) parent8d9edfb
1 file changed+21−7
searx/engines/__init__.py+21−7
searx/engines/__init__.py+21−7
@@ -36,6 +36,8 @@ engines = {}
3636
3737categories = {'general': []}
3838
39+engine_shortcuts = {}
40+
3941
4042def load_module(filename):
4143 modname = splitext(filename)[0]
@@ -54,13 +56,6 @@ for engine_data in settings['engines']:
5456 engine_name = engine_data['engine']
5557 engine = load_module(engine_name + '.py')
5658
57− if not hasattr(engine, 'paging'):
58− engine.paging = False
59−
60− if not hasattr(engine, 'language_support'):
61− #engine.language_support = False
62− engine.language_support = True
63−
6459 for param_name in engine_data:
6560 if param_name == 'engine':
6661 continue
@@ -72,12 +67,26 @@ for engine_data in settings['engines']:
7267 str.strip, engine_data['categories'].split(','))
7368 continue
7469 setattr(engine, param_name, engine_data[param_name])
70+
71+ if not hasattr(engine, 'paging'):
72+ engine.paging = False
73+
74+ if not hasattr(engine, 'language_support'):
75+ #engine.language_support = False
76+ engine.language_support = True
77+
78+ if not hasattr(engine, 'shortcut'):
79+ #engine.language_support = False
80+ engine.shortcut = ''
81+
82+ # checking required variables
7583 for engine_attr in dir(engine):
7684 if engine_attr.startswith('_'):
7785 continue
7886 if getattr(engine, engine_attr) is None:
7987 print '[E] Engine config error: Missing attribute "{0}.{1}"'.format(engine.name, engine_attr) # noqa
8088 sys.exit(1)
89+
8190 engines[engine.name] = engine
8291 engine.stats = {
8392 'result_count': 0,
@@ -86,12 +95,17 @@ for engine_data in settings['engines']:
8695 'score_count': 0,
8796 'errors': 0
8897 }
98+
8999 if hasattr(engine, 'categories'):
90100 for category_name in engine.categories:
91101 categories.setdefault(category_name, []).append(engine)
92102 else:
93103 categories['general'].append(engine)
94104
105+ if engine.shortcut:
106+ # TODO check duplications
107+ engine_shortcuts[engine.shortcut] = engine.name
108+
95109
96110def default_request_params():
97111 return {