|
@@ -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
|
|