.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
searx.engines.stract Namespace Reference

Functions

 request (query, params)
 response (resp)
 fetch_traits (EngineTraits engine_traits)

Variables

dict about
list categories = ['general']
bool paging = True
str base_url = "https://stract.com/beta/api"
str search_url = base_url + "/search"

Detailed Description

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.

Function Documentation

◆ fetch_traits()

searx.engines.stract.fetch_traits ( EngineTraits engine_traits)

Definition at line 61 of file stract.py.

61def fetch_traits(engine_traits: EngineTraits):
62 # pylint: disable=import-outside-toplevel
63 from searx import network
64 from babel import Locale, languages
65 from searx.locales import region_tag
66
67 territories = Locale("en").territories
68
69 json = network.get(base_url + "/docs/openapi.json").json()
70 regions = json['components']['schemas']['Region']['enum']
71
72 engine_traits.all_locale = regions[0]
73
74 for region in regions[1:]:
75 for code, name in territories.items():
76 if region not in (code, name):
77 continue
78 for lang in languages.get_official_languages(code, de_facto=True):
79 engine_traits.regions[region_tag(Locale(lang, code))] = region

◆ request()

searx.engines.stract.request ( query,
params )

Definition at line 26 of file stract.py.

26def request(query, params):
27 params['url'] = search_url
28 params['method'] = "POST"
29 params['headers'] = {
30 'Accept': 'application/json',
31 'Content-Type': 'application/json',
32 'User-Agent': searxng_useragent(),
33 }
34 region = traits.get_region(params["searxng_locale"], default=traits.all_locale)
35 params['data'] = dumps(
36 {
37 'query': query,
38 'page': params['pageno'] - 1,
39 'selectedRegion': region,
40 }
41 )
42
43 return params
44
45

◆ response()

searx.engines.stract.response ( resp)

Definition at line 46 of file stract.py.

46def response(resp):
47 results = []
48
49 for result in resp.json()["webpages"]:
50 results.append(
51 {
52 'url': result['url'],
53 'title': result['title'],
54 'content': ''.join(fragment['text'] for fragment in result['snippet']['text']['fragments']),
55 }
56 )
57
58 return results
59
60

Variable Documentation

◆ about

dict searx.engines.stract.about
Initial value:
1= {
2 "website": "https://stract.com/",
3 "use_official_api": True,
4 "official_api_documentation": "https://stract.com/beta/api/docs/#/search/api",
5 "require_api_key": False,
6 "results": "JSON",
7}

Definition at line 12 of file stract.py.

◆ base_url

str searx.engines.stract.base_url = "https://stract.com/beta/api"

Definition at line 22 of file stract.py.

◆ categories

list searx.engines.stract.categories = ['general']

Definition at line 19 of file stract.py.

◆ paging

bool searx.engines.stract.paging = True

Definition at line 20 of file stract.py.

◆ search_url

str searx.engines.stract.search_url = base_url + "/search"

Definition at line 23 of file stract.py.