Browse Source

[mod] engine load refactor

Adam Tauber 10 years ago
parent
commit
2cfa760b57
1 changed files with 11 additions and 5 deletions
  1. 11
    5
      searx/engines/__init__.py

+ 11
- 5
searx/engines/__init__.py View File

41
     module.name = modname
41
     module.name = modname
42
     return module
42
     return module
43
 
43
 
44
-if 'engines' not in settings or not settings['engines']:
45
-    print '[E] Error no engines found. Edit your settings.yml'
46
-    exit(2)
47
 
44
 
48
-for engine_data in settings['engines']:
45
+def load_engine(engine_data):
49
     engine_name = engine_data['engine']
46
     engine_name = engine_data['engine']
50
     engine = load_module(engine_name + '.py')
47
     engine = load_module(engine_name + '.py')
51
 
48
 
87
             print '[E] Engine config error: Missing attribute "{0}.{1}"'.format(engine.name, engine_attr)  # noqa
84
             print '[E] Engine config error: Missing attribute "{0}.{1}"'.format(engine.name, engine_attr)  # noqa
88
             sys.exit(1)
85
             sys.exit(1)
89
 
86
 
90
-    engines[engine.name] = engine
91
     engine.stats = {
87
     engine.stats = {
92
         'result_count': 0,
88
         'result_count': 0,
93
         'search_count': 0,
89
         'search_count': 0,
105
     if engine.shortcut:
101
     if engine.shortcut:
106
         # TODO check duplications
102
         # TODO check duplications
107
         engine_shortcuts[engine.shortcut] = engine.name
103
         engine_shortcuts[engine.shortcut] = engine.name
104
+    return engine
108
 
105
 
109
 
106
 
110
 def get_engines_stats():
107
 def get_engines_stats():
194
             sorted(errors, key=itemgetter('avg'), reverse=True)
191
             sorted(errors, key=itemgetter('avg'), reverse=True)
195
         ),
192
         ),
196
     ]
193
     ]
194
+
195
+
196
+if 'engines' not in settings or not settings['engines']:
197
+    print '[E] Error no engines found. Edit your settings.yml'
198
+    exit(2)
199
+
200
+for engine_data in settings['engines']:
201
+    engine = load_engine(engine_data)
202
+    engines[engine.name] = engine