Pārlūkot izejas kodu

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 gadus atpakaļ
vecāks
revīzija
cf0c92075e
5 mainītis faili ar 830 papildinājumiem un 729 dzēšanām
  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 Parādīt failu

@@ -19,7 +19,7 @@ import certifi
19 19
 import logging
20 20
 from os import environ
21 21
 from os.path import realpath, dirname, join, abspath, isfile
22
-from io import open
22
+from io import open as io_open
23 23
 from ssl import OPENSSL_VERSION_INFO, OPENSSL_VERSION
24 24
 try:
25 25
     from yaml import load
@@ -32,27 +32,43 @@ searx_dir = abspath(dirname(__file__))
32 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 40
     if isfile(file_name):
37 41
         return file_name
38 42
     else:
39 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 59
 # find location of settings.yml
42 60
 if 'SEARX_SETTINGS_PATH' in environ:
43 61
     # if possible set path to settings using the
44 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 64
 else:
47 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 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 74
 enable debug if
@@ -71,7 +87,7 @@ if searx_debug_env == 'true' or searx_debug_env == '1':
71 87
 elif searx_debug_env == 'false' or searx_debug_env == '0':
72 88
     searx_debug = False
73 89
 else:
74
-    searx_debug = settings.get('general', {}).get('debug')
90
+    searx_debug = user_settings.get('general', {}).get('debug')
75 91
 
76 92
 if searx_debug:
77 93
     logging.basicConfig(level=logging.DEBUG)
@@ -79,7 +95,7 @@ else:
79 95
     logging.basicConfig(level=logging.WARNING)
80 96
 
81 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 99
 # Workaround for openssl versions <1.0.2
84 100
 # https://github.com/certifi/python-certifi/issues/26
85 101
 if OPENSSL_VERSION_INFO[0:3] < (1, 0, 2):
@@ -87,6 +103,42 @@ if OPENSSL_VERSION_INFO[0:3] < (1, 0, 2):
87 103
         environ['REQUESTS_CA_BUNDLE'] = certifi.old_where()
88 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 142
 logger.info('Initialisation done')
91 143
 
92 144
 if 'SEARX_SECRET' in environ:

+ 6
- 0
searx/doi.yml Parādīt failu

@@ -0,0 +1,6 @@
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 Parādīt failu

@@ -0,0 +1,633 @@
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 Parādīt failu

@@ -0,0 +1,32 @@
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 Parādīt failu

@@ -6,6 +6,103 @@ search:
6 6
     safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
7 7
     autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
8 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 107
 server:
11 108
     port : 8888
@@ -43,722 +140,3 @@ outgoing: # communication with search engines
43 140
 #    source_ips:
44 141
 #        - 1.1.1.1
45 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'