Bläddra i källkod

[mod] engine load refactor

Adam Tauber 10 år sedan
förälder
incheckning
2cfa760b57
1 ändrade filer med 11 tillägg och 5 borttagningar
  1. 11
    5
      searx/engines/__init__.py

+ 11
- 5
searx/engines/__init__.py Visa fil

@@ -41,11 +41,8 @@ def load_module(filename):
41 41
     module.name = modname
42 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 46
     engine_name = engine_data['engine']
50 47
     engine = load_module(engine_name + '.py')
51 48
 
@@ -87,7 +84,6 @@ for engine_data in settings['engines']:
87 84
             print '[E] Engine config error: Missing attribute "{0}.{1}"'.format(engine.name, engine_attr)  # noqa
88 85
             sys.exit(1)
89 86
 
90
-    engines[engine.name] = engine
91 87
     engine.stats = {
92 88
         'result_count': 0,
93 89
         'search_count': 0,
@@ -105,6 +101,7 @@ for engine_data in settings['engines']:
105 101
     if engine.shortcut:
106 102
         # TODO check duplications
107 103
         engine_shortcuts[engine.shortcut] = engine.name
104
+    return engine
108 105
 
109 106
 
110 107
 def get_engines_stats():
@@ -194,3 +191,12 @@ def get_engines_stats():
194 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