Browse Source

Implement #1209

- settings.yml has the same format as before
- doi.yml, locales.yml and engines.yml are loaded before (the disabled attributes are removed)
- if yaml search.engines path is defined, then all engines are disabled, and only engine specified in this list are enabled.
- settings.yml contans only general, search, server, ui sections. The search section contains the enabled engines.
- settings_robot.yml is unchanged
Alex 6 years ago
parent
commit
cf0c92075e
5 changed files with 830 additions and 729 deletions
  1. 62
    10
      searx/__init__.py
  2. 6
    0
      searx/doi.yml
  3. 633
    0
      searx/engines.yml
  4. 32
    0
      searx/locales.yml
  5. 97
    719
      searx/settings.yml

+ 62
- 10
searx/__init__.py View File

19
 import logging
19
 import logging
20
 from os import environ
20
 from os import environ
21
 from os.path import realpath, dirname, join, abspath, isfile
21
 from os.path import realpath, dirname, join, abspath, isfile
22
-from io import open
22
+from io import open as io_open
23
 from ssl import OPENSSL_VERSION_INFO, OPENSSL_VERSION
23
 from ssl import OPENSSL_VERSION_INFO, OPENSSL_VERSION
24
 try:
24
 try:
25
     from yaml import load
25
     from yaml import load
32
 engine_dir = dirname(realpath(__file__))
32
 engine_dir = dirname(realpath(__file__))
33
 
33
 
34
 
34
 
35
-def check_settings_yml(file_name):
35
+def build_key_to_index(seq, key):
36
+    return dict((d[key], index) for (index, d) in enumerate(seq))
37
+
38
+
39
+def check_file(file_name):
36
     if isfile(file_name):
40
     if isfile(file_name):
37
         return file_name
41
         return file_name
38
     else:
42
     else:
39
         return None
43
         return None
40
 
44
 
45
+
46
+def load_yaml(file_name):
47
+    with io_open(file_name, 'r', encoding='utf-8') as file_yaml:
48
+        return load(file_yaml)
49
+
50
+
51
+def load_embedded_yaml(name):
52
+    file_name = join(searx_dir, name)
53
+    logger.debug('read configuration from %s', file_name)
54
+    if check_file(file_name):
55
+        return load_yaml(file_name)
56
+    else:
57
+        logger.warning('{0} is not found.')
58
+
41
 # find location of settings.yml
59
 # find location of settings.yml
42
 if 'SEARX_SETTINGS_PATH' in environ:
60
 if 'SEARX_SETTINGS_PATH' in environ:
43
     # if possible set path to settings using the
61
     # if possible set path to settings using the
44
     # enviroment variable SEARX_SETTINGS_PATH
62
     # enviroment variable SEARX_SETTINGS_PATH
45
-    settings_path = check_settings_yml(environ['SEARX_SETTINGS_PATH'])
63
+    user_settings_path = check_file(environ['SEARX_SETTINGS_PATH'])
46
 else:
64
 else:
47
     # if not, get it from searx code base or last solution from /etc/searx
65
     # if not, get it from searx code base or last solution from /etc/searx
48
-    settings_path = check_settings_yml(join(searx_dir, 'settings.yml')) or check_settings_yml('/etc/searx/settings.yml')
66
+    user_settings_path = check_file(join(searx_dir, 'settings.yml')) or check_file('/etc/searx/settings.yml')
49
 
67
 
50
-if not settings_path:
68
+if not user_settings_path:
51
     raise Exception('settings.yml not found')
69
     raise Exception('settings.yml not found')
52
 
70
 
53
-# load settings
54
-with open(settings_path, 'r', encoding='utf-8') as settings_yaml:
55
-    settings = load(settings_yaml)
71
+user_settings = load_yaml(user_settings_path)
56
 
72
 
57
 '''
73
 '''
58
 enable debug if
74
 enable debug if
71
 elif searx_debug_env == 'false' or searx_debug_env == '0':
87
 elif searx_debug_env == 'false' or searx_debug_env == '0':
72
     searx_debug = False
88
     searx_debug = False
73
 else:
89
 else:
74
-    searx_debug = settings.get('general', {}).get('debug')
90
+    searx_debug = user_settings.get('general', {}).get('debug')
75
 
91
 
76
 if searx_debug:
92
 if searx_debug:
77
     logging.basicConfig(level=logging.DEBUG)
93
     logging.basicConfig(level=logging.DEBUG)
79
     logging.basicConfig(level=logging.WARNING)
95
     logging.basicConfig(level=logging.WARNING)
80
 
96
 
81
 logger = logging.getLogger('searx')
97
 logger = logging.getLogger('searx')
82
-logger.debug('read configuration from %s', settings_path)
98
+logger.debug('read configuration from %s', user_settings_path)
83
 # Workaround for openssl versions <1.0.2
99
 # Workaround for openssl versions <1.0.2
84
 # https://github.com/certifi/python-certifi/issues/26
100
 # https://github.com/certifi/python-certifi/issues/26
85
 if OPENSSL_VERSION_INFO[0:3] < (1, 0, 2):
101
 if OPENSSL_VERSION_INFO[0:3] < (1, 0, 2):
87
         environ['REQUESTS_CA_BUNDLE'] = certifi.old_where()
103
         environ['REQUESTS_CA_BUNDLE'] = certifi.old_where()
88
     logger.warning('You are using an old openssl version({0}), please upgrade above 1.0.2!'.format(OPENSSL_VERSION))
104
     logger.warning('You are using an old openssl version({0}), please upgrade above 1.0.2!'.format(OPENSSL_VERSION))
89
 
105
 
106
+'''
107
+Load all settings
108
+'''
109
+
110
+# settings are merged from different yml files
111
+settings = dict()
112
+# load embedded settings first
113
+settings.update(load_embedded_yaml('engines.yml'))
114
+settings.update(load_embedded_yaml('doi.yml'))
115
+settings.update(load_embedded_yaml('locales.yml'))
116
+# load user settings at the end (may override embedded settings)
117
+settings.update(user_settings)
118
+# are there some user engine settings ?
119
+user_engine_settings = settings.get('search', {}).get('engines', None)
120
+if user_engine_settings:
121
+    # Yes there are, so disable all engines by default
122
+    for e in settings['engines']:
123
+        e['disabled'] = True
124
+
125
+    # merge settings "search.engines" into "engines"
126
+    engines_by_names = build_key_to_index(settings['engines'], 'name')
127
+    for e in user_engine_settings:
128
+        name = e['name']
129
+        del e['name']
130
+        # enable engine
131
+        e['disabled'] = False
132
+        # merge settings
133
+        if name in engines_by_names:
134
+            settings['engines'][engines_by_names[name]].update(e)
135
+        else:
136
+            logger.error('{0} is not an engine')
137
+
138
+    # merge done : delete user engine settings
139
+    del settings['search']['engines']
140
+
141
+#
90
 logger.info('Initialisation done')
142
 logger.info('Initialisation done')
91
 
143
 
92
 if 'SEARX_SECRET' in environ:
144
 if 'SEARX_SECRET' in environ:

+ 6
- 0
searx/doi.yml View File

1
+doi_resolvers :
2
+  oadoi.org : 'https://oadoi.org/'
3
+  doi.org : 'https://doi.org/'
4
+  doai.io  : 'http://doai.io/'
5
+
6
+default_doi_resolver : 'oadoi.org'

+ 633
- 0
searx/engines.yml View File

1
+engines:
2
+  - name : arch linux wiki
3
+    engine : archlinux
4
+    shortcut : al
5
+
6
+  - name : archive is
7
+    engine : xpath
8
+    search_url : https://archive.is/{query}
9
+    url_xpath : (//div[@class="TEXT-BLOCK"]/a)/@href
10
+    title_xpath : (//div[@class="TEXT-BLOCK"]/a)
11
+    content_xpath : //div[@class="TEXT-BLOCK"]/ul/li
12
+    categories : general
13
+    timeout : 7.0
14
+    shortcut : ai
15
+
16
+  - name : arxiv
17
+    engine : arxiv
18
+    shortcut : arx
19
+    categories : science
20
+    timeout : 4.0
21
+
22
+  - name : asksteem
23
+    engine : asksteem
24
+    shortcut : as
25
+
26
+  - name : base
27
+    engine : base
28
+    shortcut : bs
29
+
30
+  - name : wikipedia
31
+    engine : wikipedia
32
+    shortcut : wp
33
+    base_url : 'https://{language}.wikipedia.org/'
34
+
35
+  - name : bing
36
+    engine : bing
37
+    shortcut : bi
38
+
39
+  - name : bing images
40
+    engine : bing_images
41
+    shortcut : bii
42
+
43
+  - name : bing news
44
+    engine : bing_news
45
+    shortcut : bin
46
+
47
+  - name : bing videos
48
+    engine : bing_videos
49
+    shortcut : biv
50
+
51
+  - name : bitbucket
52
+    engine : xpath
53
+    paging : True
54
+    search_url : https://bitbucket.org/repo/all/{pageno}?name={query}
55
+    url_xpath : //article[@class="repo-summary"]//a[@class="repo-link"]/@href
56
+    title_xpath : //article[@class="repo-summary"]//a[@class="repo-link"]
57
+    content_xpath : //article[@class="repo-summary"]/p
58
+    categories : it
59
+    timeout : 4.0
60
+    shortcut : bb
61
+
62
+  - name : ccc-tv
63
+    engine : xpath
64
+    paging : False
65
+    search_url : https://media.ccc.de/search/?q={query}
66
+    url_xpath : //div[@class="caption"]/h3/a/@href
67
+    title_xpath : //div[@class="caption"]/h3/a/text()
68
+    content_xpath : //div[@class="caption"]/h4/@title
69
+    categories : videos
70
+    shortcut : c3tv
71
+
72
+  - name : crossref
73
+    engine : json_engine
74
+    paging : True
75
+    search_url : http://search.crossref.org/dois?q={query}&page={pageno}
76
+    url_query : doi
77
+    title_query : title
78
+    content_query : fullCitation
79
+    categories : science
80
+    shortcut : cr
81
+
82
+  - name : currency
83
+    engine : currency_convert
84
+    categories : general
85
+    shortcut : cc
86
+
87
+  - name : deezer
88
+    engine : deezer
89
+    shortcut : dz
90
+
91
+  - name : deviantart
92
+    engine : deviantart
93
+    shortcut : da
94
+    timeout: 3.0
95
+
96
+  - name : ddg definitions
97
+    engine : duckduckgo_definitions
98
+    shortcut : ddd
99
+    weight : 2
100
+
101
+  - name : digbt
102
+    engine : digbt
103
+    shortcut : dbt
104
+    timeout : 6.0
105
+
106
+  - name : digg
107
+    engine : digg
108
+    shortcut : dg
109
+
110
+  - name : erowid
111
+    engine : xpath
112
+    paging : True
113
+    first_page_num : 0
114
+    page_size : 30
115
+    search_url : https://www.erowid.org/search.php?q={query}&s={pageno}
116
+    url_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/@href
117
+    title_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/text()
118
+    content_xpath : //dl[@class="results-list"]/dd[@class="result-details"]
119
+    categories : general
120
+    shortcut : ew
121
+
122
+  - name : wikidata
123
+    engine : wikidata
124
+    shortcut : wd
125
+    timeout : 3.0
126
+    weight : 2
127
+
128
+  - name : duckduckgo
129
+    engine : duckduckgo
130
+    shortcut : ddg
131
+
132
+  - name : duckduckgo images
133
+    engine : duckduckgo_images
134
+    shortcut : ddi
135
+    timeout: 3.0
136
+
137
+  - name : etymonline
138
+    engine : xpath
139
+    paging : True
140
+    search_url : http://etymonline.com/?search={query}&p={pageno}
141
+    url_xpath : //dt/a[1]/@href
142
+    title_xpath : //dt
143
+    content_xpath : //dd
144
+    suggestion_xpath : //a[@class="crossreference"]
145
+    first_page_num : 0
146
+    shortcut : et
147
+
148
+  - name : faroo
149
+    engine : faroo
150
+    shortcut : fa
151
+
152
+  - name : 500px
153
+    engine : www500px
154
+    shortcut : px
155
+
156
+  - name : 1x
157
+    engine : www1x
158
+    shortcut : 1x
159
+
160
+  - name : fdroid
161
+    engine : fdroid
162
+    shortcut : fd
163
+
164
+  - name : findx
165
+    engine : findx
166
+    shortcut : fx
167
+    categories : general
168
+
169
+  - name : findx images
170
+    engine : findx
171
+    shortcut : fxi
172
+    categories : images
173
+
174
+  - name : findx videos
175
+    engine : findx
176
+    shortcut : fxv
177
+    categories : videos
178
+
179
+  - name : flickr
180
+    categories : images
181
+    shortcut : fl
182
+# You can use the engine using the official stable API, but you need an API key
183
+# See : https://www.flickr.com/services/apps/create/
184
+#    engine : flickr
185
+#    api_key: 'apikey' # required!
186
+# Or you can use the html non-stable engine, activated by default
187
+    engine : flickr_noapi
188
+
189
+  - name : free software directory
190
+    engine : mediawiki
191
+    shortcut : fsd
192
+    categories : it
193
+    base_url : https://directory.fsf.org/
194
+    number_of_results : 5
195
+# what part of a page matches the query string: title, text, nearmatch
196
+# title - query matches title, text - query matches the text of page, nearmatch - nearmatch in title
197
+    search_type : title
198
+    timeout : 5.0
199
+
200
+  - name : frinkiac
201
+    engine : frinkiac
202
+    shortcut : frk
203
+
204
+  - name : genius
205
+    engine : genius
206
+    shortcut : gen
207
+
208
+  - name : gigablast
209
+    engine : gigablast
210
+    shortcut : gb
211
+    timeout : 3.0
212
+
213
+  - name : gitlab
214
+    engine : json_engine
215
+    paging : True
216
+    search_url : https://gitlab.com/api/v4/projects?search={query}&page={pageno}
217
+    url_query : web_url
218
+    title_query : name_with_namespace
219
+    content_query : description
220
+    page_size : 20
221
+    categories : it
222
+    shortcut : gl
223
+    timeout : 10.0
224
+
225
+  - name : github
226
+    engine : github
227
+    shortcut : gh
228
+
229
+  - name : google
230
+    engine : google
231
+    shortcut : go
232
+
233
+  - name : google images
234
+    engine : google_images
235
+    shortcut : goi
236
+
237
+  - name : google news
238
+    engine : google_news
239
+    shortcut : gon
240
+
241
+  - name : google videos
242
+    engine : google_videos
243
+    shortcut : gov
244
+
245
+  - name : google scholar
246
+    engine : xpath
247
+    paging : True
248
+    search_url : https://scholar.google.com/scholar?start={pageno}&q={query}&hl=en&as_sdt=0,5&as_vis=1
249
+    results_xpath : //div[@class="gs_r"]/div[@class="gs_ri"]
250
+    url_xpath : .//h3/a/@href
251
+    title_xpath : .//h3/a
252
+    content_xpath : .//div[@class="gs_rs"]
253
+    suggestion_xpath : //div[@id="gs_qsuggest"]/ul/li
254
+    page_size : 10
255
+    first_page_num : 0
256
+    categories : science
257
+    shortcut : gos
258
+
259
+  - name : google play apps
260
+    engine        : xpath
261
+    search_url    : https://play.google.com/store/search?q={query}&c=apps
262
+    url_xpath     : //a[@class="title"]/@href
263
+    title_xpath   : //a[@class="title"]
264
+    content_xpath : //a[@class="subtitle"]
265
+    categories : files
266
+    shortcut : gpa
267
+
268
+  - name : google play movies
269
+    engine        : xpath
270
+    search_url    : https://play.google.com/store/search?q={query}&c=movies
271
+    url_xpath     : //a[@class="title"]/@href
272
+    title_xpath   : //a[@class="title"]/@title
273
+    content_xpath : //a[contains(@class, "subtitle")]
274
+    categories : videos
275
+    shortcut : gpm
276
+
277
+  - name : google play music
278
+    engine        : xpath
279
+    search_url    : https://play.google.com/store/search?q={query}&c=music
280
+    url_xpath     : //a[@class="title"]/@href
281
+    title_xpath   : //a[@class="title"]
282
+    content_xpath : //a[@class="subtitle"]
283
+    categories : music
284
+    shortcut : gps
285
+
286
+  - name : geektimes
287
+    engine : xpath
288
+    paging : True
289
+    search_url : https://geektimes.ru/search/page{pageno}/?q={query}
290
+    url_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]/@href
291
+    title_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]
292
+    content_xpath : //article[contains(@class, "post")]//div[contains(@class, "post__text")]
293
+    categories : it
294
+    timeout : 4.0
295
+    shortcut : gt
296
+
297
+  - name : habrahabr
298
+    engine : xpath
299
+    paging : True
300
+    search_url : https://habrahabr.ru/search/page{pageno}/?q={query}
301
+    url_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]/@href
302
+    title_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]
303
+    content_xpath : //article[contains(@class, "post")]//div[contains(@class, "post__text")]
304
+    categories : it
305
+    timeout : 4.0
306
+    shortcut : habr
307
+
308
+  - name : hoogle
309
+    engine : json_engine
310
+    paging : True
311
+    search_url : https://www.haskell.org/hoogle/?mode=json&hoogle={query}&start={pageno}
312
+    results_query : results
313
+    url_query : location
314
+    title_query : self
315
+    content_query : docs
316
+    page_size : 20
317
+    categories : it
318
+    shortcut : ho
319
+
320
+  - name : ina
321
+    engine : ina
322
+    shortcut : in
323
+    timeout : 6.0
324
+
325
+  - name: kickass
326
+    engine : kickass
327
+    shortcut : kc
328
+    timeout : 4.0
329
+
330
+  - name : library genesis
331
+    engine : xpath
332
+    search_url : http://libgen.io/search.php?req={query}
333
+    url_xpath : //a[contains(@href,"bookfi.net")]/@href
334
+    title_xpath : //a[contains(@href,"book/")]/text()[1]
335
+    content_xpath : //td/a[1][contains(@href,"=author")]/text()
336
+    categories : general
337
+    timeout : 7.0
338
+    shortcut : lg
339
+
340
+  - name : lobste.rs
341
+    engine : xpath
342
+    search_url : https://lobste.rs/search?utf8=%E2%9C%93&q={query}&what=stories&order=relevance
343
+    results_xpath : //li[contains(@class, "story")]
344
+    url_xpath : .//span[@class="link"]/a/@href
345
+    title_xpath : .//span[@class="link"]/a
346
+    content_xpath : .//a[@class="domain"]
347
+    categories : it
348
+    shortcut : lo
349
+
350
+  - name : microsoft academic
351
+    engine : microsoft_academic
352
+    categories : science
353
+    shortcut : ma
354
+
355
+  - name : mixcloud
356
+    engine : mixcloud
357
+    shortcut : mc
358
+
359
+  - name : nyaa
360
+    engine : nyaa
361
+    shortcut : nt
362
+
363
+  - name : openairedatasets
364
+    engine : json_engine
365
+    paging : True
366
+    search_url : http://api.openaire.eu/search/datasets?format=json&page={pageno}&size=10&title={query}
367
+    results_query : response/results/result
368
+    url_query : metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
369
+    title_query : metadata/oaf:entity/oaf:result/title/$
370
+    content_query : metadata/oaf:entity/oaf:result/description/$
371
+    categories : science
372
+    shortcut : oad
373
+    timeout: 5.0
374
+
375
+  - name : openairepublications
376
+    engine : json_engine
377
+    paging : True
378
+    search_url : http://api.openaire.eu/search/publications?format=json&page={pageno}&size=10&title={query}
379
+    results_query : response/results/result
380
+    url_query : metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
381
+    title_query : metadata/oaf:entity/oaf:result/title/$
382
+    content_query : metadata/oaf:entity/oaf:result/description/$
383
+    categories : science
384
+    shortcut : oap
385
+    timeout: 5.0
386
+
387
+  - name : openstreetmap
388
+    engine : openstreetmap
389
+    shortcut : osm
390
+
391
+  - name : openrepos
392
+    engine : xpath
393
+    paging : True
394
+    search_url : https://openrepos.net/search/node/{query}?page={pageno}
395
+    url_xpath : //li[@class="search-result"]//h3[@class="title"]/a/@href
396
+    title_xpath : //li[@class="search-result"]//h3[@class="title"]/a
397
+    content_xpath : //li[@class="search-result"]//div[@class="search-snippet-info"]//p[@class="search-snippet"]
398
+    categories : files
399
+    timeout : 4.0
400
+    shortcut : or
401
+
402
+  - name : pdbe
403
+    engine : pdbe
404
+    shortcut : pdb
405
+# Hide obsolete PDB entries.
406
+# Default is not to hide obsolete structures
407
+#    hide_obsolete : False
408
+
409
+  - name : photon
410
+    engine : photon
411
+    shortcut : ph
412
+
413
+  - name : piratebay
414
+    engine : piratebay
415
+    shortcut : tpb
416
+    url: https://pirateproxy.red/
417
+    timeout : 3.0
418
+
419
+  - name : pubmed
420
+    engine : pubmed
421
+    shortcut : pub
422
+    categories: science
423
+    timeout : 3.0
424
+
425
+  - name : qwant
426
+    engine : qwant
427
+    shortcut : qw
428
+    categories : general
429
+
430
+  - name : qwant images
431
+    engine : qwant
432
+    shortcut : qwi
433
+    categories : images
434
+
435
+  - name : qwant news
436
+    engine : qwant
437
+    shortcut : qwn
438
+    categories : news
439
+
440
+  - name : qwant social
441
+    engine : qwant
442
+    shortcut : qws
443
+    categories : social media
444
+
445
+  - name : reddit
446
+    engine : reddit
447
+    shortcut : re
448
+    page_size : 25
449
+    timeout : 10.0
450
+
451
+  - name : scanr structures
452
+    shortcut: scs
453
+    engine : scanr_structures
454
+
455
+  - name : soundcloud
456
+    engine : soundcloud
457
+    shortcut : sc
458
+
459
+  - name : stackoverflow
460
+    engine : stackoverflow
461
+    shortcut : st
462
+
463
+  - name : searchcode doc
464
+    engine : searchcode_doc
465
+    shortcut : scd
466
+
467
+  - name : searchcode code
468
+    engine : searchcode_code
469
+    shortcut : scc
470
+
471
+  - name : framalibre
472
+    engine : framalibre
473
+    shortcut : frl
474
+
475
+#  - name : searx
476
+#    engine : searx_engine
477
+#    shortcut : se
478
+#    instance_urls :
479
+#        - http://127.0.0.1:8888/
480
+#        - ...
481
+
482
+  - name : semantic scholar
483
+    engine : xpath
484
+    paging : True
485
+    search_url : https://www.semanticscholar.org/search?q={query}&sort=relevance&page={pageno}&ae=false
486
+    results_xpath : //article
487
+    url_xpath : .//div[@class="search-result-title"]/a/@href
488
+    title_xpath : .//div[@class="search-result-title"]/a
489
+    content_xpath : .//div[@class="search-result-abstract"]
490
+    shortcut : se
491
+    categories : science
492
+
493
+  - name : spotify
494
+    engine : spotify
495
+    shortcut : stf
496
+
497
+  - name : subtitleseeker
498
+    engine : subtitleseeker
499
+    shortcut : ss
500
+# The language is an option. You can put any language written in english
501
+# Examples : English, French, German, Hungarian, Chinese...
502
+#    language : English
503
+
504
+  - name : startpage
505
+    engine : startpage
506
+    shortcut : sp
507
+    timeout : 6.0
508
+
509
+  - name : ixquick
510
+    engine : startpage
511
+    base_url : 'https://www.ixquick.eu/'
512
+    search_url : 'https://www.ixquick.eu/do/search'
513
+    shortcut : iq
514
+    timeout : 6.0
515
+
516
+  - name : swisscows
517
+    engine : swisscows
518
+    shortcut : sw
519
+
520
+  - name : tokyotoshokan
521
+    engine : tokyotoshokan
522
+    shortcut : tt
523
+    timeout : 6.0
524
+
525
+  - name : torrentz
526
+    engine : torrentz
527
+    shortcut : tor
528
+    url: https://torrentz2.eu/
529
+    timeout : 3.0
530
+
531
+  - name : twitter
532
+    engine : twitter
533
+    shortcut : tw
534
+
535
+# maybe in a fun category
536
+#  - name : uncyclopedia
537
+#    engine : mediawiki
538
+#    shortcut : unc
539
+#    base_url : https://uncyclopedia.wikia.com/
540
+#    number_of_results : 5
541
+
542
+# tmp suspended - too slow, too many errors
543
+#  - name : urbandictionary
544
+#    engine        : xpath
545
+#    search_url    : http://www.urbandictionary.com/define.php?term={query}
546
+#    url_xpath     : //*[@class="word"]/@href
547
+#    title_xpath   : //*[@class="def-header"]
548
+#    content_xpath : //*[@class="meaning"]
549
+#    shortcut : ud
550
+
551
+  - name : yahoo
552
+    engine : yahoo
553
+    shortcut : yh
554
+
555
+  - name : yandex
556
+    engine : yandex
557
+    shortcut : yn
558
+
559
+  - name : yahoo news
560
+    engine : yahoo_news
561
+    shortcut : yhn
562
+
563
+  - name : youtube
564
+    shortcut : yt
565
+    # You can use the engine using the official stable API, but you need an API key
566
+    # See : https://console.developers.google.com/project
567
+    #    engine : youtube_api
568
+    #    api_key: 'apikey' # required!
569
+    # Or you can use the html non-stable engine, activated by default
570
+    engine : youtube_noapi
571
+
572
+  - name : dailymotion
573
+    engine : dailymotion
574
+    shortcut : dm
575
+
576
+  - name : vimeo
577
+    engine : vimeo
578
+    shortcut : vm
579
+
580
+  - name : wolframalpha
581
+    shortcut : wa
582
+    # You can use the engine using the official stable API, but you need an API key
583
+    # See : http://products.wolframalpha.com/api/
584
+    # engine : wolframalpha_api
585
+    # api_key: '' # required!
586
+    engine : wolframalpha_noapi
587
+    timeout: 6.0
588
+    categories : science
589
+
590
+  - name : seedpeer
591
+    engine : seedpeer
592
+    shortcut: speu
593
+    categories: files, music, videos
594
+
595
+  - name : dictzone
596
+    engine : dictzone
597
+    shortcut : dc
598
+
599
+  - name : mymemory translated
600
+    engine : translated
601
+    shortcut : tl
602
+    timeout : 5.0
603
+    # You can use without an API key, but you are limited to 1000 words/day
604
+    # See : http://mymemory.translated.net/doc/usagelimits.php
605
+    # api_key : ''
606
+
607
+  - name : voat
608
+    engine: xpath
609
+    shortcut: vo
610
+    categories: social media
611
+    search_url : https://searchvoat.co/?t={query}
612
+    url_xpath : //div[@class="entry"]/p/a[@class="title"]/@href
613
+    title_xpath : //div[@class="entry"]/p/a[@class="title"]
614
+    content_xpath : //div[@class="entry"]/p/span[@class="domain"]
615
+    timeout : 10.0
616
+
617
+  - name : 1337x
618
+    engine : 1337x
619
+    shortcut : 1337x
620
+
621
+#  - name : yacy
622
+#    engine : yacy
623
+#    shortcut : ya
624
+#    base_url : 'http://localhost:8090'
625
+#    number_of_results : 5
626
+#    timeout : 3.0
627
+
628
+# Doku engine lets you access to any Doku wiki instance:
629
+# A public one or a privete/corporate one.
630
+#  - name : ubuntuwiki
631
+#    engine : doku
632
+#    shortcut : uw
633
+#    base_url : 'http://doc.ubuntu-fr.org'

+ 32
- 0
searx/locales.yml View File

1
+locales:
2
+    en : English
3
+    ar : العَرَبِيَّة (Arabic)
4
+    bg : Български (Bulgarian)
5
+    cs : Čeština (Czech)
6
+    da : Dansk (Danish)
7
+    de : Deutsch (German)
8
+    el_GR : Ελληνικά (Greek_Greece)
9
+    eo : Esperanto (Esperanto)
10
+    es : Español (Spanish)
11
+    fi : Suomi (Finnish)
12
+    fil : Wikang Filipino (Filipino)
13
+    fr : Français (French)
14
+    he : עברית (Hebrew)
15
+    hr : Hrvatski (Croatian)
16
+    hu : Magyar (Hungarian)
17
+    it : Italiano (Italian)
18
+    ja : 日本語 (Japanese)
19
+    nl : Nederlands (Dutch)
20
+    pl : Polszczyzna (Polish)
21
+    pt : Português (Portuguese)
22
+    pt_BR : Português (Portuguese_Brazil)
23
+    ro : Română (Romanian)
24
+    ru : Русский (Russian)
25
+    sk : Slovenčina (Slovak)
26
+    sl : Slovenski (Slovene)
27
+    sr : српски (Serbian)
28
+    sv : Svenska (Swedish)
29
+    tr : Türkçe (Turkish)
30
+    uk : українська мова (Ukrainian)
31
+    zh : 中文 (Chinese)
32
+    zh_TW : 國語 (Taiwanese Mandarin)

+ 97
- 719
searx/settings.yml View File

6
     safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
6
     safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
7
     autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
7
     autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
8
     language : "en-US"
8
     language : "en-US"
9
+    engines:
10
+      - name: arch linux wiki
11
+      #- name: archive is
12
+      - name: arxiv
13
+      - name: asksteem
14
+      - name: base
15
+      - name: wikipedia
16
+      - name: bing
17
+      - name: bing images
18
+      - name: bing news
19
+      - name: bing videos
20
+      #- name: bitbucket
21
+      #- name: ccc-tv
22
+      - name: crossref
23
+      - name: currency
24
+      - name: deezer
25
+      - name: deviantart
26
+      #- name: ddg definitions
27
+      #- name: digbt
28
+      - name: digg
29
+      #- name: erowid
30
+      - name: wikidata
31
+      #- name: duckduckgo
32
+      #- name: duckduckgo images
33
+      #- name: etymonline
34
+      #- name: faroo
35
+      - name: 500px
36
+      #- name: 1x
37
+      #- name: fdroid
38
+      #- name: findx
39
+      #- name: findx images
40
+      #- name: findx videos
41
+      - name: flickr
42
+      #- name: free software directory
43
+      #- name: frinkiac
44
+      - name: genius
45
+      #- name: gigablast
46
+      #- name: gitlab
47
+      - name: github
48
+      - name: google
49
+      - name: google images
50
+      - name: google news
51
+      - name: google videos
52
+      - name: google scholar
53
+      #- name: google play apps
54
+      #- name: google play movies
55
+      #- name: google play music
56
+      #- name: geektimes
57
+      #- name: habrahabr
58
+      - name: hoogle
59
+      #- name: ina
60
+      #- name: kickass
61
+      #- name: library genesis
62
+      - name: lobste.rs
63
+      - name: microsoft academic
64
+      - name: mixcloud
65
+      #- name: nyaa
66
+      - name: openairedatasets
67
+      - name: openairepublications
68
+      - name: openstreetmap
69
+      #- name: openrepos
70
+      - name: pdbe
71
+      - name: photon
72
+      - name: piratebay
73
+      - name: pubmed
74
+      #- name: qwant
75
+      - name: qwant images
76
+      - name: qwant news
77
+      - name: qwant social
78
+      #- name: reddit
79
+      #- name: scanr structures
80
+      - name: soundcloud
81
+      - name: stackoverflow
82
+      - name: searchcode doc
83
+      #- name: searchcode code
84
+      #- name: framalibre
85
+      - name: semantic scholar
86
+      - name: spotify
87
+      - name: subtitleseeker
88
+      #- name: startpage
89
+      #- name: ixquick
90
+      #- name: swisscows
91
+      #- name: tokyotoshokan
92
+      - name: torrentz
93
+      - name: twitter
94
+      #- name: yahoo
95
+      #- name: yandex
96
+      - name: yahoo news
97
+      - name: youtube
98
+      - name: dailymotion
99
+      - name: vimeo
100
+      - name: wolframalpha
101
+      #- name: seedpeer
102
+      - name: dictzone
103
+      #- name: mymemory translated
104
+      #- name: voat
105
+      #- name: 1337x
9
 
106
 
10
 server:
107
 server:
11
     port : 8888
108
     port : 8888
43
 #    source_ips:
140
 #    source_ips:
44
 #        - 1.1.1.1
141
 #        - 1.1.1.1
45
 #        - 1.1.1.2
142
 #        - 1.1.1.2
46
-
47
-engines:
48
-  - name : arch linux wiki
49
-    engine : archlinux
50
-    shortcut : al
51
-
52
-  - name : archive is
53
-    engine : xpath
54
-    search_url : https://archive.is/{query}
55
-    url_xpath : (//div[@class="TEXT-BLOCK"]/a)/@href
56
-    title_xpath : (//div[@class="TEXT-BLOCK"]/a)
57
-    content_xpath : //div[@class="TEXT-BLOCK"]/ul/li
58
-    categories : general
59
-    timeout : 7.0
60
-    disabled : True
61
-    shortcut : ai
62
-
63
-  - name : arxiv
64
-    engine : arxiv
65
-    shortcut : arx
66
-    categories : science
67
-    timeout : 4.0
68
-
69
-  - name : asksteem
70
-    engine : asksteem
71
-    shortcut : as
72
-
73
-  - name : base
74
-    engine : base
75
-    shortcut : bs
76
-
77
-  - name : wikipedia
78
-    engine : wikipedia
79
-    shortcut : wp
80
-    base_url : 'https://{language}.wikipedia.org/'
81
-
82
-  - name : bing
83
-    engine : bing
84
-    shortcut : bi
85
-
86
-  - name : bing images
87
-    engine : bing_images
88
-    shortcut : bii
89
-
90
-  - name : bing news
91
-    engine : bing_news
92
-    shortcut : bin
93
-
94
-  - name : bing videos
95
-    engine : bing_videos
96
-    shortcut : biv
97
-
98
-  - name : bitbucket
99
-    engine : xpath
100
-    paging : True
101
-    search_url : https://bitbucket.org/repo/all/{pageno}?name={query}
102
-    url_xpath : //article[@class="repo-summary"]//a[@class="repo-link"]/@href
103
-    title_xpath : //article[@class="repo-summary"]//a[@class="repo-link"]
104
-    content_xpath : //article[@class="repo-summary"]/p
105
-    categories : it
106
-    timeout : 4.0
107
-    disabled : True
108
-    shortcut : bb
109
-
110
-  - name : ccc-tv
111
-    engine : xpath
112
-    paging : False
113
-    search_url : https://media.ccc.de/search/?q={query}
114
-    url_xpath : //div[@class="caption"]/h3/a/@href
115
-    title_xpath : //div[@class="caption"]/h3/a/text()
116
-    content_xpath : //div[@class="caption"]/h4/@title
117
-    categories : videos
118
-    disabled : True
119
-    shortcut : c3tv
120
-
121
-  - name : crossref
122
-    engine : json_engine
123
-    paging : True
124
-    search_url : http://search.crossref.org/dois?q={query}&page={pageno}
125
-    url_query : doi
126
-    title_query : title
127
-    content_query : fullCitation
128
-    categories : science
129
-    shortcut : cr
130
-
131
-  - name : currency
132
-    engine : currency_convert
133
-    categories : general
134
-    shortcut : cc
135
-
136
-  - name : deezer
137
-    engine : deezer
138
-    shortcut : dz
139
-
140
-  - name : deviantart
141
-    engine : deviantart
142
-    shortcut : da
143
-    timeout: 3.0
144
-
145
-  - name : ddg definitions
146
-    engine : duckduckgo_definitions
147
-    shortcut : ddd
148
-    weight : 2
149
-    disabled : True
150
-
151
-  - name : digbt
152
-    engine : digbt
153
-    shortcut : dbt
154
-    timeout : 6.0
155
-    disabled : True
156
-
157
-  - name : digg
158
-    engine : digg
159
-    shortcut : dg
160
-
161
-  - name : erowid
162
-    engine : xpath
163
-    paging : True
164
-    first_page_num : 0
165
-    page_size : 30
166
-    search_url : https://www.erowid.org/search.php?q={query}&s={pageno}
167
-    url_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/@href
168
-    title_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/text()
169
-    content_xpath : //dl[@class="results-list"]/dd[@class="result-details"]
170
-    categories : general
171
-    shortcut : ew
172
-    disabled : True
173
-
174
-  - name : wikidata
175
-    engine : wikidata
176
-    shortcut : wd
177
-    timeout : 3.0
178
-    weight : 2
179
-
180
-  - name : duckduckgo
181
-    engine : duckduckgo
182
-    shortcut : ddg
183
-    disabled : True
184
-
185
-  - name : duckduckgo images
186
-    engine : duckduckgo_images
187
-    shortcut : ddi
188
-    timeout: 3.0
189
-    disabled : True
190
-
191
-  - name : etymonline
192
-    engine : xpath
193
-    paging : True
194
-    search_url : http://etymonline.com/?search={query}&p={pageno}
195
-    url_xpath : //dt/a[1]/@href
196
-    title_xpath : //dt
197
-    content_xpath : //dd
198
-    suggestion_xpath : //a[@class="crossreference"]
199
-    first_page_num : 0
200
-    shortcut : et
201
-    disabled : True
202
-
203
-  - name : faroo
204
-    engine : faroo
205
-    shortcut : fa
206
-    disabled : True
207
-
208
-  - name : 500px
209
-    engine : www500px
210
-    shortcut : px
211
-
212
-  - name : 1x
213
-    engine : www1x
214
-    shortcut : 1x
215
-    disabled : True
216
-
217
-  - name : fdroid
218
-    engine : fdroid
219
-    shortcut : fd
220
-    disabled : True
221
-
222
-  - name : findx
223
-    engine : findx
224
-    shortcut : fx
225
-    categories : general
226
-    disabled : True
227
-
228
-  - name : findx images
229
-    engine : findx
230
-    shortcut : fxi
231
-    categories : images
232
-    disabled : True
233
-
234
-  - name : findx videos
235
-    engine : findx
236
-    shortcut : fxv
237
-    categories : videos
238
-    disabled : True
239
-
240
-  - name : flickr
241
-    categories : images
242
-    shortcut : fl
243
-# You can use the engine using the official stable API, but you need an API key
244
-# See : https://www.flickr.com/services/apps/create/
245
-#    engine : flickr
246
-#    api_key: 'apikey' # required!
247
-# Or you can use the html non-stable engine, activated by default
248
-    engine : flickr_noapi
249
-
250
-  - name : free software directory
251
-    engine : mediawiki
252
-    shortcut : fsd
253
-    categories : it
254
-    base_url : https://directory.fsf.org/
255
-    number_of_results : 5
256
-# what part of a page matches the query string: title, text, nearmatch
257
-# title - query matches title, text - query matches the text of page, nearmatch - nearmatch in title
258
-    search_type : title
259
-    timeout : 5.0
260
-    disabled : True
261
-
262
-  - name : frinkiac
263
-    engine : frinkiac
264
-    shortcut : frk
265
-    disabled : True
266
-
267
-  - name : genius
268
-    engine : genius
269
-    shortcut : gen
270
-
271
-  - name : gigablast
272
-    engine : gigablast
273
-    shortcut : gb
274
-    timeout : 3.0
275
-    disabled: True
276
-
277
-  - name : gitlab
278
-    engine : json_engine
279
-    paging : True
280
-    search_url : https://gitlab.com/api/v4/projects?search={query}&page={pageno}
281
-    url_query : web_url
282
-    title_query : name_with_namespace
283
-    content_query : description
284
-    page_size : 20
285
-    categories : it
286
-    shortcut : gl
287
-    timeout : 10.0
288
-    disabled : True
289
-
290
-  - name : github
291
-    engine : github
292
-    shortcut : gh
293
-
294
-  - name : google
295
-    engine : google
296
-    shortcut : go
297
-
298
-  - name : google images
299
-    engine : google_images
300
-    shortcut : goi
301
-
302
-  - name : google news
303
-    engine : google_news
304
-    shortcut : gon
305
-
306
-  - name : google videos
307
-    engine : google_videos
308
-    shortcut : gov
309
-
310
-  - name : google scholar
311
-    engine : xpath
312
-    paging : True
313
-    search_url : https://scholar.google.com/scholar?start={pageno}&q={query}&hl=en&as_sdt=0,5&as_vis=1
314
-    results_xpath : //div[@class="gs_r"]/div[@class="gs_ri"]
315
-    url_xpath : .//h3/a/@href
316
-    title_xpath : .//h3/a
317
-    content_xpath : .//div[@class="gs_rs"]
318
-    suggestion_xpath : //div[@id="gs_qsuggest"]/ul/li
319
-    page_size : 10
320
-    first_page_num : 0
321
-    categories : science
322
-    shortcut : gos
323
-
324
-  - name : google play apps
325
-    engine        : xpath
326
-    search_url    : https://play.google.com/store/search?q={query}&c=apps
327
-    url_xpath     : //a[@class="title"]/@href
328
-    title_xpath   : //a[@class="title"]
329
-    content_xpath : //a[@class="subtitle"]
330
-    categories : files
331
-    shortcut : gpa
332
-    disabled : True
333
-
334
-  - name : google play movies
335
-    engine        : xpath
336
-    search_url    : https://play.google.com/store/search?q={query}&c=movies
337
-    url_xpath     : //a[@class="title"]/@href
338
-    title_xpath   : //a[@class="title"]/@title
339
-    content_xpath : //a[contains(@class, "subtitle")]
340
-    categories : videos
341
-    shortcut : gpm
342
-    disabled : True
343
-
344
-  - name : google play music
345
-    engine        : xpath
346
-    search_url    : https://play.google.com/store/search?q={query}&c=music
347
-    url_xpath     : //a[@class="title"]/@href
348
-    title_xpath   : //a[@class="title"]
349
-    content_xpath : //a[@class="subtitle"]
350
-    categories : music
351
-    shortcut : gps
352
-    disabled : True
353
-
354
-  - name : geektimes
355
-    engine : xpath
356
-    paging : True
357
-    search_url : https://geektimes.ru/search/page{pageno}/?q={query}
358
-    url_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]/@href
359
-    title_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]
360
-    content_xpath : //article[contains(@class, "post")]//div[contains(@class, "post__text")]
361
-    categories : it
362
-    timeout : 4.0
363
-    disabled : True
364
-    shortcut : gt
365
-
366
-  - name : habrahabr
367
-    engine : xpath
368
-    paging : True
369
-    search_url : https://habrahabr.ru/search/page{pageno}/?q={query}
370
-    url_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]/@href
371
-    title_xpath : //article[contains(@class, "post")]//a[@class="post__title_link"]
372
-    content_xpath : //article[contains(@class, "post")]//div[contains(@class, "post__text")]
373
-    categories : it
374
-    timeout : 4.0
375
-    disabled : True
376
-    shortcut : habr
377
-
378
-  - name : hoogle
379
-    engine : json_engine
380
-    paging : True
381
-    search_url : https://www.haskell.org/hoogle/?mode=json&hoogle={query}&start={pageno}
382
-    results_query : results
383
-    url_query : location
384
-    title_query : self
385
-    content_query : docs
386
-    page_size : 20
387
-    categories : it
388
-    shortcut : ho
389
-
390
-  - name : ina
391
-    engine : ina
392
-    shortcut : in
393
-    timeout : 6.0
394
-    disabled : True
395
-
396
-  - name: kickass
397
-    engine : kickass
398
-    shortcut : kc
399
-    timeout : 4.0
400
-    disabled : True
401
-
402
-  - name : library genesis
403
-    engine : xpath
404
-    search_url : http://libgen.io/search.php?req={query}
405
-    url_xpath : //a[contains(@href,"bookfi.net")]/@href
406
-    title_xpath : //a[contains(@href,"book/")]/text()[1]
407
-    content_xpath : //td/a[1][contains(@href,"=author")]/text()
408
-    categories : general
409
-    timeout : 7.0
410
-    disabled : True
411
-    shortcut : lg
412
-
413
-  - name : lobste.rs
414
-    engine : xpath
415
-    search_url : https://lobste.rs/search?utf8=%E2%9C%93&q={query}&what=stories&order=relevance
416
-    results_xpath : //li[contains(@class, "story")]
417
-    url_xpath : .//span[@class="link"]/a/@href
418
-    title_xpath : .//span[@class="link"]/a
419
-    content_xpath : .//a[@class="domain"]
420
-    categories : it
421
-    shortcut : lo
422
-
423
-  - name : microsoft academic
424
-    engine : microsoft_academic
425
-    categories : science
426
-    shortcut : ma
427
-
428
-  - name : mixcloud
429
-    engine : mixcloud
430
-    shortcut : mc
431
-
432
-  - name : nyaa
433
-    engine : nyaa
434
-    shortcut : nt
435
-    disabled : True
436
-
437
-  - name : openairedatasets
438
-    engine : json_engine
439
-    paging : True
440
-    search_url : http://api.openaire.eu/search/datasets?format=json&page={pageno}&size=10&title={query}
441
-    results_query : response/results/result
442
-    url_query : metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
443
-    title_query : metadata/oaf:entity/oaf:result/title/$
444
-    content_query : metadata/oaf:entity/oaf:result/description/$
445
-    categories : science
446
-    shortcut : oad
447
-    timeout: 5.0
448
-
449
-  - name : openairepublications
450
-    engine : json_engine
451
-    paging : True
452
-    search_url : http://api.openaire.eu/search/publications?format=json&page={pageno}&size=10&title={query}
453
-    results_query : response/results/result
454
-    url_query : metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
455
-    title_query : metadata/oaf:entity/oaf:result/title/$
456
-    content_query : metadata/oaf:entity/oaf:result/description/$
457
-    categories : science
458
-    shortcut : oap
459
-    timeout: 5.0
460
-
461
-  - name : openstreetmap
462
-    engine : openstreetmap
463
-    shortcut : osm
464
-
465
-  - name : openrepos
466
-    engine : xpath
467
-    paging : True
468
-    search_url : https://openrepos.net/search/node/{query}?page={pageno}
469
-    url_xpath : //li[@class="search-result"]//h3[@class="title"]/a/@href
470
-    title_xpath : //li[@class="search-result"]//h3[@class="title"]/a
471
-    content_xpath : //li[@class="search-result"]//div[@class="search-snippet-info"]//p[@class="search-snippet"]
472
-    categories : files
473
-    timeout : 4.0
474
-    disabled : True
475
-    shortcut : or
476
-
477
-  - name : pdbe
478
-    engine : pdbe
479
-    shortcut : pdb
480
-# Hide obsolete PDB entries.
481
-# Default is not to hide obsolete structures
482
-#    hide_obsolete : False
483
-
484
-  - name : photon
485
-    engine : photon
486
-    shortcut : ph
487
-
488
-  - name : piratebay
489
-    engine : piratebay
490
-    shortcut : tpb
491
-    url: https://pirateproxy.red/
492
-    timeout : 3.0
493
-
494
-  - name : pubmed
495
-    engine : pubmed
496
-    shortcut : pub
497
-    categories: science
498
-    timeout : 3.0
499
-
500
-  - name : qwant
501
-    engine : qwant
502
-    shortcut : qw
503
-    categories : general
504
-    disabled : True
505
-
506
-  - name : qwant images
507
-    engine : qwant
508
-    shortcut : qwi
509
-    categories : images
510
-
511
-  - name : qwant news
512
-    engine : qwant
513
-    shortcut : qwn
514
-    categories : news
515
-
516
-  - name : qwant social
517
-    engine : qwant
518
-    shortcut : qws
519
-    categories : social media
520
-
521
-  - name : reddit
522
-    engine : reddit
523
-    shortcut : re
524
-    page_size : 25
525
-    timeout : 10.0
526
-    disabled : True
527
-
528
-  - name : scanr structures
529
-    shortcut: scs
530
-    engine : scanr_structures
531
-    disabled : True
532
-
533
-  - name : soundcloud
534
-    engine : soundcloud
535
-    shortcut : sc
536
-
537
-  - name : stackoverflow
538
-    engine : stackoverflow
539
-    shortcut : st
540
-
541
-  - name : searchcode doc
542
-    engine : searchcode_doc
543
-    shortcut : scd
544
-
545
-  - name : searchcode code
546
-    engine : searchcode_code
547
-    shortcut : scc
548
-    disabled : True
549
-
550
-  - name : framalibre
551
-    engine : framalibre
552
-    shortcut : frl
553
-    disabled : True
554
-
555
-#  - name : searx
556
-#    engine : searx_engine
557
-#    shortcut : se
558
-#    instance_urls :
559
-#        - http://127.0.0.1:8888/
560
-#        - ...
561
-#    disabled : True
562
-
563
-  - name : semantic scholar
564
-    engine : xpath
565
-    paging : True
566
-    search_url : https://www.semanticscholar.org/search?q={query}&sort=relevance&page={pageno}&ae=false
567
-    results_xpath : //article
568
-    url_xpath : .//div[@class="search-result-title"]/a/@href
569
-    title_xpath : .//div[@class="search-result-title"]/a
570
-    content_xpath : .//div[@class="search-result-abstract"]
571
-    shortcut : se
572
-    categories : science
573
-
574
-  - name : spotify
575
-    engine : spotify
576
-    shortcut : stf
577
-
578
-  - name : subtitleseeker
579
-    engine : subtitleseeker
580
-    shortcut : ss
581
-# The language is an option. You can put any language written in english
582
-# Examples : English, French, German, Hungarian, Chinese...
583
-#    language : English
584
-
585
-  - name : startpage
586
-    engine : startpage
587
-    shortcut : sp
588
-    timeout : 6.0
589
-    disabled : True
590
-
591
-  - name : ixquick
592
-    engine : startpage
593
-    base_url : 'https://www.ixquick.eu/'
594
-    search_url : 'https://www.ixquick.eu/do/search'
595
-    shortcut : iq
596
-    timeout : 6.0
597
-    disabled : True
598
-
599
-  - name : swisscows
600
-    engine : swisscows
601
-    shortcut : sw
602
-    disabled : True
603
-
604
-  - name : tokyotoshokan
605
-    engine : tokyotoshokan
606
-    shortcut : tt
607
-    timeout : 6.0
608
-    disabled : True
609
-
610
-  - name : torrentz
611
-    engine : torrentz
612
-    shortcut : tor
613
-    url: https://torrentz2.eu/
614
-    timeout : 3.0
615
-
616
-  - name : twitter
617
-    engine : twitter
618
-    shortcut : tw
619
-
620
-# maybe in a fun category
621
-#  - name : uncyclopedia
622
-#    engine : mediawiki
623
-#    shortcut : unc
624
-#    base_url : https://uncyclopedia.wikia.com/
625
-#    number_of_results : 5
626
-
627
-# tmp suspended - too slow, too many errors
628
-#  - name : urbandictionary
629
-#    engine        : xpath
630
-#    search_url    : http://www.urbandictionary.com/define.php?term={query}
631
-#    url_xpath     : //*[@class="word"]/@href
632
-#    title_xpath   : //*[@class="def-header"]
633
-#    content_xpath : //*[@class="meaning"]
634
-#    shortcut : ud
635
-
636
-  - name : yahoo
637
-    engine : yahoo
638
-    shortcut : yh
639
-    disabled : True
640
-
641
-  - name : yandex
642
-    engine : yandex
643
-    shortcut : yn
644
-    disabled : True
645
-
646
-  - name : yahoo news
647
-    engine : yahoo_news
648
-    shortcut : yhn
649
-
650
-  - name : youtube
651
-    shortcut : yt
652
-    # You can use the engine using the official stable API, but you need an API key
653
-    # See : https://console.developers.google.com/project
654
-    #    engine : youtube_api
655
-    #    api_key: 'apikey' # required!
656
-    # Or you can use the html non-stable engine, activated by default
657
-    engine : youtube_noapi
658
-
659
-  - name : dailymotion
660
-    engine : dailymotion
661
-    shortcut : dm
662
-
663
-  - name : vimeo
664
-    engine : vimeo
665
-    shortcut : vm
666
-
667
-  - name : wolframalpha
668
-    shortcut : wa
669
-    # You can use the engine using the official stable API, but you need an API key
670
-    # See : http://products.wolframalpha.com/api/
671
-    # engine : wolframalpha_api
672
-    # api_key: '' # required!
673
-    engine : wolframalpha_noapi
674
-    timeout: 6.0
675
-    categories : science
676
-
677
-  - name : seedpeer
678
-    engine : seedpeer
679
-    shortcut: speu
680
-    categories: files, music, videos
681
-    disabled: True
682
-
683
-  - name : dictzone
684
-    engine : dictzone
685
-    shortcut : dc
686
-
687
-  - name : mymemory translated
688
-    engine : translated
689
-    shortcut : tl
690
-    timeout : 5.0
691
-    disabled : True
692
-    # You can use without an API key, but you are limited to 1000 words/day
693
-    # See : http://mymemory.translated.net/doc/usagelimits.php
694
-    # api_key : ''
695
-
696
-  - name : voat
697
-    engine: xpath
698
-    shortcut: vo
699
-    categories: social media
700
-    search_url : https://searchvoat.co/?t={query}
701
-    url_xpath : //div[@class="entry"]/p/a[@class="title"]/@href
702
-    title_xpath : //div[@class="entry"]/p/a[@class="title"]
703
-    content_xpath : //div[@class="entry"]/p/span[@class="domain"]
704
-    timeout : 10.0
705
-    disabled : True
706
-
707
-  - name : 1337x
708
-    engine : 1337x
709
-    shortcut : 1337x
710
-    disabled : True
711
-
712
-#  - name : yacy
713
-#    engine : yacy
714
-#    shortcut : ya
715
-#    base_url : 'http://localhost:8090'
716
-#    number_of_results : 5
717
-#    timeout : 3.0
718
-
719
-# Doku engine lets you access to any Doku wiki instance:
720
-# A public one or a privete/corporate one.
721
-#  - name : ubuntuwiki
722
-#    engine : doku
723
-#    shortcut : uw
724
-#    base_url : 'http://doc.ubuntu-fr.org'
725
-
726
-locales:
727
-    en : English
728
-    ar : العَرَبِيَّة (Arabic)
729
-    bg : Български (Bulgarian)
730
-    cs : Čeština (Czech)
731
-    da : Dansk (Danish)
732
-    de : Deutsch (German)
733
-    el_GR : Ελληνικά (Greek_Greece)
734
-    eo : Esperanto (Esperanto)
735
-    es : Español (Spanish)
736
-    fi : Suomi (Finnish)
737
-    fil : Wikang Filipino (Filipino)
738
-    fr : Français (French)
739
-    he : עברית (Hebrew)
740
-    hr : Hrvatski (Croatian)
741
-    hu : Magyar (Hungarian)
742
-    it : Italiano (Italian)
743
-    ja : 日本語 (Japanese)
744
-    nl : Nederlands (Dutch)
745
-    pl : Polszczyzna (Polish)
746
-    pt : Português (Portuguese)
747
-    pt_BR : Português (Portuguese_Brazil)
748
-    ro : Română (Romanian)
749
-    ru : Русский (Russian)
750
-    sk : Slovenčina (Slovak)
751
-    sl : Slovenski (Slovene)
752
-    sr : српски (Serbian)
753
-    sv : Svenska (Swedish)
754
-    tr : Türkçe (Turkish)
755
-    uk : українська мова (Ukrainian)
756
-    zh : 中文 (Chinese)
757
-    zh_TW : 國語 (Taiwanese Mandarin)
758
-
759
-doi_resolvers :
760
-  oadoi.org : 'https://oadoi.org/'
761
-  doi.org : 'https://doi.org/'
762
-  doai.io  : 'http://doai.io/'
763
-
764
-default_doi_resolver : 'oadoi.org'