소스 검색

[mod] engine load refactor

Adam Tauber 9 년 전
부모
커밋
17b0c9f74a
1개의 변경된 파일18개의 추가작업 그리고 31개의 파일을 삭제
  1. 18
    31
      searx/engines/__init__.py

+ 18
- 31
searx/engines/__init__.py 파일 보기

@@ -34,6 +34,13 @@ engines = {}
34 34
 categories = {'general': []}
35 35
 
36 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 46
 def load_module(filename):
@@ -62,26 +69,9 @@ def load_engine(engine_data):
62 69
             continue
63 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 76
     # checking required variables
87 77
     for engine_attr in dir(engine):
@@ -100,18 +90,15 @@ def load_engine(engine_data):
100 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 102
     return engine
116 103
 
117 104