Sfoglia il codice sorgente

[enh] shortcut support added to engines

asciimoo 11 anni fa
parent
commit
88425f05d6
1 ha cambiato i file con 21 aggiunte e 7 eliminazioni
  1. 21
    7
      searx/engines/__init__.py

+ 21
- 7
searx/engines/__init__.py Vedi File

36
 
36
 
37
 categories = {'general': []}
37
 categories = {'general': []}
38
 
38
 
39
+engine_shortcuts = {}
40
+
39
 
41
 
40
 def load_module(filename):
42
 def load_module(filename):
41
     modname = splitext(filename)[0]
43
     modname = splitext(filename)[0]
54
     engine_name = engine_data['engine']
56
     engine_name = engine_data['engine']
55
     engine = load_module(engine_name + '.py')
57
     engine = load_module(engine_name + '.py')
56
 
58
 
57
-    if not hasattr(engine, 'paging'):
58
-        engine.paging = False
59
-
60
-    if not hasattr(engine, 'language_support'):
61
-        #engine.language_support = False
62
-        engine.language_support = True
63
-
64
     for param_name in engine_data:
59
     for param_name in engine_data:
65
         if param_name == 'engine':
60
         if param_name == 'engine':
66
             continue
61
             continue
72
                     str.strip, engine_data['categories'].split(','))
67
                     str.strip, engine_data['categories'].split(','))
73
             continue
68
             continue
74
         setattr(engine, param_name, engine_data[param_name])
69
         setattr(engine, param_name, engine_data[param_name])
70
+
71
+    if not hasattr(engine, 'paging'):
72
+        engine.paging = False
73
+
74
+    if not hasattr(engine, 'language_support'):
75
+        #engine.language_support = False
76
+        engine.language_support = True
77
+
78
+    if not hasattr(engine, 'shortcut'):
79
+        #engine.language_support = False
80
+        engine.shortcut = ''
81
+
82
+    # checking required variables
75
     for engine_attr in dir(engine):
83
     for engine_attr in dir(engine):
76
         if engine_attr.startswith('_'):
84
         if engine_attr.startswith('_'):
77
             continue
85
             continue
78
         if getattr(engine, engine_attr) is None:
86
         if getattr(engine, engine_attr) is None:
79
             print '[E] Engine config error: Missing attribute "{0}.{1}"'.format(engine.name, engine_attr)  # noqa
87
             print '[E] Engine config error: Missing attribute "{0}.{1}"'.format(engine.name, engine_attr)  # noqa
80
             sys.exit(1)
88
             sys.exit(1)
89
+
81
     engines[engine.name] = engine
90
     engines[engine.name] = engine
82
     engine.stats = {
91
     engine.stats = {
83
         'result_count': 0,
92
         'result_count': 0,
86
         'score_count': 0,
95
         'score_count': 0,
87
         'errors': 0
96
         'errors': 0
88
     }
97
     }
98
+
89
     if hasattr(engine, 'categories'):
99
     if hasattr(engine, 'categories'):
90
         for category_name in engine.categories:
100
         for category_name in engine.categories:
91
             categories.setdefault(category_name, []).append(engine)
101
             categories.setdefault(category_name, []).append(engine)
92
     else:
102
     else:
93
         categories['general'].append(engine)
103
         categories['general'].append(engine)
94
 
104
 
105
+    if engine.shortcut:
106
+        # TODO check duplications
107
+        engine_shortcuts[engine.shortcut] = engine.name
108
+
95
 
109
 
96
 def default_request_params():
110
 def default_request_params():
97
     return {
111
     return {