mirror of
https://github.com/searxng/searxng.git
synced 2024-11-26 04:41:00 +00:00
[mod] yacy: use official instance by default and fix crashes
This commit is contained in:
parent
5d53aac20f
commit
fa5b2a7948
2 changed files with 64 additions and 27 deletions
|
@ -18,17 +18,27 @@ Configuration
|
|||
|
||||
The engine has the following (additional) settings:
|
||||
|
||||
- :py:obj:`http_digest_auth_user`
|
||||
- :py:obj:`http_digest_auth_pass`
|
||||
- :py:obj:`search_mode`
|
||||
- :py:obj:`search_type`
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
- name: yacy
|
||||
engine: yacy
|
||||
categories: general
|
||||
search_type: text
|
||||
base_url: https://yacy.searchlab.eu
|
||||
shortcut: ya
|
||||
base_url: http://localhost:8090
|
||||
# Yacy search mode. 'global' or 'local'.
|
||||
search_mode: 'global'
|
||||
number_of_results: 5
|
||||
http_digest_auth_user: ""
|
||||
http_digest_auth_pass: ""
|
||||
|
||||
- name: yacy images
|
||||
engine: yacy
|
||||
categories: images
|
||||
search_type: image
|
||||
base_url: https://yacy.searchlab.eu
|
||||
shortcut: yai
|
||||
disabled: true
|
||||
|
||||
|
||||
Implementations
|
||||
|
@ -55,11 +65,14 @@ about = {
|
|||
}
|
||||
|
||||
# engine dependent config
|
||||
categories = ['general', 'images'] # TODO , 'music', 'videos', 'files'
|
||||
categories = ['general']
|
||||
paging = True
|
||||
number_of_results = 5
|
||||
number_of_results = 10
|
||||
http_digest_auth_user = ""
|
||||
"""HTTP digest user for the local YACY instance"""
|
||||
http_digest_auth_pass = ""
|
||||
"""HTTP digest password for the local YACY instance"""
|
||||
|
||||
search_mode = 'global'
|
||||
"""Yacy search mode ``global`` or ``local``. By default, Yacy operates in ``global``
|
||||
mode.
|
||||
|
@ -70,8 +83,13 @@ mode.
|
|||
``local``
|
||||
Privacy or Stealth mode, restricts the search to local yacy instance.
|
||||
"""
|
||||
search_type = 'text'
|
||||
"""One of ``text``, ``image`` / The search-types ``app``, ``audio`` and
|
||||
``video`` are not yet implemented (Pull-Requests are welcome).
|
||||
"""
|
||||
|
||||
# search-url
|
||||
base_url = 'http://localhost:8090'
|
||||
base_url = 'https://yacy.searchlab.eu'
|
||||
search_url = (
|
||||
'/yacysearch.json?{query}'
|
||||
'&startRecord={offset}'
|
||||
|
@ -80,13 +98,19 @@ search_url = (
|
|||
'&resource={resource}'
|
||||
)
|
||||
|
||||
# yacy specific type-definitions
|
||||
search_types = {'general': 'text', 'images': 'image', 'files': 'app', 'music': 'audio', 'videos': 'video'}
|
||||
|
||||
def init(_):
|
||||
valid_types = [
|
||||
'text',
|
||||
'image',
|
||||
# 'app', 'audio', 'video',
|
||||
]
|
||||
if search_type not in valid_types:
|
||||
raise ValueError('search_type "%s" is not one of %s' % (search_type, valid_types))
|
||||
|
||||
|
||||
def request(query, params):
|
||||
offset = (params['pageno'] - 1) * number_of_results
|
||||
search_type = search_types.get(params.get('category'), '0')
|
||||
|
||||
params['url'] = base_url + search_url.format(
|
||||
query=urlencode({'query': query}),
|
||||
|
@ -122,7 +146,7 @@ def response(resp):
|
|||
|
||||
for result in search_results[0].get('items', []):
|
||||
# parse image results
|
||||
if resp.search_params.get('category') == 'images':
|
||||
if search_type == 'image':
|
||||
result_url = ''
|
||||
if 'url' in result:
|
||||
result_url = result['url']
|
||||
|
@ -144,12 +168,14 @@ def response(resp):
|
|||
|
||||
# parse general results
|
||||
else:
|
||||
publishedDate = None
|
||||
if 'pubDate' in result:
|
||||
publishedDate = parser.parse(result['pubDate'])
|
||||
|
||||
# append result
|
||||
results.append(
|
||||
{
|
||||
'url': result['link'],
|
||||
'url': result['link'] or '',
|
||||
'title': result['title'],
|
||||
'content': html_to_text(result['description']),
|
||||
'publishedDate': publishedDate,
|
||||
|
|
|
@ -1898,16 +1898,27 @@ engines:
|
|||
shortcut: mvw
|
||||
disabled: true
|
||||
|
||||
# - name: yacy
|
||||
# engine: yacy
|
||||
# shortcut: ya
|
||||
# base_url: http://localhost:8090
|
||||
# # required if you aren't using HTTPS for your local yacy instance'
|
||||
- name: yacy
|
||||
engine: yacy
|
||||
categories: general
|
||||
search_type: text
|
||||
base_url: https://yacy.searchlab.eu
|
||||
shortcut: ya
|
||||
disabled: true
|
||||
# required if you aren't using HTTPS for your local yacy instance
|
||||
# https://docs.searxng.org/dev/engines/online/yacy.html
|
||||
# enable_http: true
|
||||
# timeout: 3.0
|
||||
# # Yacy search mode. 'global' or 'local'.
|
||||
# search_mode: 'global'
|
||||
|
||||
- name: yacy images
|
||||
engine: yacy
|
||||
categories: images
|
||||
search_type: image
|
||||
base_url: https://yacy.searchlab.eu
|
||||
shortcut: yai
|
||||
disabled: true
|
||||
|
||||
- name: rumble
|
||||
engine: rumble
|
||||
shortcut: ru
|
||||
|
|
Loading…
Reference in a new issue