@@ -24,15 +24,11 @@ from operator import itemgetter
24from urlparse import urlparse
24from urlparse import urlparse
25from searx import settings
25from searx import settings
26from searx.utils import gen_useragent
26from searx.utils import gen_useragent
29from datetime import datetime
28from datetime import datetime
31engine_dir = dirname(realpath(__file__))
30engine_dir = dirname(realpath(__file__))
32−searx_dir = join(engine_dir, '../../')
34−engines_config = ConfigParser.SafeConfigParser()
35−engines_config.read(join(searx_dir, 'engines.cfg'))
36number_of_searches = 0
32number_of_searches = 0
38engines = {}
34engines = {}
@@ -48,24 +44,23 @@ def load_module(filename):
48 module.name = modname
44 module.name = modname
49 return module
45 return module
51−if not engines_config.sections():
47+if not 'engines' in settings or not settings['engines']:
52− print '[E] Error no engines found. Edit your engines.cfg'
48+ print '[E] Error no engines found. Edit your settings.yml'
55−for engine_config_name in engines_config.sections():
51+for engine_data in settings['engines']:
56− engine_data = engines_config.options(engine_config_name)
52+ engine_name = engine_data['engine']
57− engine = load_module(engines_config.get(engine_config_name, 'engine')+'.py')
53+ engine = load_module(engine_name+'.py')
58− engine.name = engine_config_name
59 for param_name in engine_data:
54 for param_name in engine_data:
60 if param_name == 'engine':
55 if param_name == 'engine':
62 if param_name == 'categories':
57 if param_name == 'categories':
63− if engines_config.get(engine_config_name, param_name) == 'none':
58+ if engine_data['categories'] == 'none':
64 engine.categories = []
59 engine.categories = []
66− engine.categories = map(str.strip, engines_config.get(engine_config_name, param_name).split(','))
61+ engine.categories = map(str.strip, engine_data['categories'].split(','))
68− setattr(engine, param_name, engines_config.get(engine_config_name, param_name))
63+ setattr(engine, param_name, engine_data[param_name])
69 for engine_attr in dir(engine):
64 for engine_attr in dir(engine):
70 if engine_attr.startswith('_'):
65 if engine_attr.startswith('_'):
@@ -170,7 +165,7 @@ def search(query, request, selected_engines):
170 request_args = dict(headers = request_params['headers']
165 request_args = dict(headers = request_params['headers']
171 ,hooks = dict(response=callback)
166 ,hooks = dict(response=callback)
172 ,cookies = request_params['cookies']
167 ,cookies = request_params['cookies']
173− ,timeout = settings.request_timeout
168+ ,timeout = settings['server']['request_timeout']
176 if request_params['method'] == 'GET':
171 if request_params['method'] == 'GET':