Selaa lähdekoodia

[mod] engine load refactor

Adam Tauber 9 vuotta sitten
vanhempi
commit
17b0c9f74a
1 muutettua tiedostoa jossa 18 lisäystä ja 31 poistoa
  1. 18
    31
      searx/engines/__init__.py

+ 18
- 31
searx/engines/__init__.py Näytä tiedosto

34
 categories = {'general': []}
34
 categories = {'general': []}
35
 
35
 
36
 engine_shortcuts = {}
36
 engine_shortcuts = {}
37
+engine_default_args = {'paging': False,
38
+                       'categories': ['general'],
39
+                       'language_support': True,
40
+                       'safesearch': False,
41
+                       'timeout': settings['outgoing']['request_timeout'],
42
+                       'shortcut': '-',
43
+                       'disabled': False}
37
 
44
 
38
 
45
 
39
 def load_module(filename):
46
 def load_module(filename):
62
             continue
69
             continue
63
         setattr(engine, param_name, engine_data[param_name])
70
         setattr(engine, param_name, engine_data[param_name])
64
 
71
 
65
-    if not hasattr(engine, 'paging'):
66
-        engine.paging = False
67
-
68
-    if not hasattr(engine, 'categories'):
69
-        engine.categories = ['general']
70
-
71
-    if not hasattr(engine, 'language_support'):
72
-        engine.language_support = True
73
-
74
-    if not hasattr(engine, 'safesearch'):
75
-        engine.safesearch = False
76
-
77
-    if not hasattr(engine, 'timeout'):
78
-        engine.timeout = settings['outgoing']['request_timeout']
79
-
80
-    if not hasattr(engine, 'shortcut'):
81
-        engine.shortcut = ''
82
-
83
-    if not hasattr(engine, 'disabled'):
84
-        engine.disabled = False
72
+    for arg_name, arg_value in engine_default_args.iteritems():
73
+        if not hasattr(engine, arg_name):
74
+            setattr(engine, arg_name, arg_value)
85
 
75
 
86
     # checking required variables
76
     # checking required variables
87
     for engine_attr in dir(engine):
77
     for engine_attr in dir(engine):
100
         'errors': 0
90
         'errors': 0
101
     }
91
     }
102
 
92
 
103
-    if hasattr(engine, 'categories'):
104
-        for category_name in engine.categories:
105
-            categories.setdefault(category_name, []).append(engine)
106
-    else:
107
-        categories['general'].append(engine)
93
+    for category_name in engine.categories:
94
+        categories.setdefault(category_name, []).append(engine)
95
+
96
+    if engine.shortcut in engine_shortcuts:
97
+        logger.error('Engine config error: ambigious shortcut: {0}'.format(engine.shortcut))
98
+        sys.exit(1)
99
+
100
+    engine_shortcuts[engine.shortcut] = engine.name
108
 
101
 
109
-    if engine.shortcut:
110
-        if engine.shortcut in engine_shortcuts:
111
-            logger.error('Engine config error: ambigious shortcut: {0}'
112
-                         .format(engine.shortcut))
113
-            sys.exit(1)
114
-        engine_shortcuts[engine.shortcut] = engine.name
115
     return engine
102
     return engine
116
 
103
 
117
 
104