[feat] engine: implementation of stract (beta)

pull/3108/head
Bnyro 5 months ago committed by Alexandre Flament
parent 2f7c800f6f
commit 621e1313af

@ -0,0 +1,43 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""Stract is an independent open source search engine.
At this state, it's still in beta and hence this implementation will need to be updated once beta ends.
"""
from json import dumps
about = {
"website": "https://stract.com/",
"use_official_api": True,
"official_api_documentation": "https://stract.com/beta/api/docs/#/search/api",
"require_api_key": False,
"results": "JSON",
}
categories = ['general']
paging = True
search_url = "https://stract.com/beta/api/search"
def request(query, params):
params['url'] = search_url
params['method'] = "POST"
params['headers'] = {'Accept': 'application/json', 'Content-Type': 'application/json'}
params['data'] = dumps({'query': query, 'page': params['pageno'] - 1})
return params
def response(resp):
results = []
for result in resp.json()["webpages"]:
results.append(
{
'url': result['url'],
'title': result['title'],
'content': ''.join(fragment['text'] for fragment in result['snippet']['text']['fragments']),
}
)
return results

@ -2079,6 +2079,11 @@ engines:
timeout: 5.0
disabled: true
- name: stract
engine: stract
shortcut: str
disabled: true
- name: svgrepo
engine: svgrepo
shortcut: svg

Loading…
Cancel
Save