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

Functions

None init (dict[str, t.Any] engine_settings)
None request (str query, dict[str, t.Any] params)
EngineResults response ("SXNG_Response" resp)

Variables

str engine_type = "online"
bool send_accept_language_header = True
list categories = ["general"]
bool disabled = True
float timeout = 2.0
bool paging = True
int page_size = 20
str search_api = "https://api.artic.edu/api/v1/artworks/search?"
str image_api = "https://www.artic.edu/iiif/2/"
dict about
 _my_online_engine = None

Detailed Description

Within this module we implement a *demo online engine*.  Do not look to
close to the implementation, its just a simple example which queries `The Art
Institute of Chicago <https://www.artic.edu>`_

To get in use of this *demo* engine add the following entry to your engines
list in ``settings.yml``:

.. code:: yaml

  - name: my online engine
    engine: demo_online
    shortcut: demo
    disabled: false

Function Documentation

◆ init()

None searx.engines.demo_online.init ( dict[str, t.Any] engine_settings)
Initialization of the (online) engine.  If no initialization is needed, drop
this init function.

Definition at line 54 of file demo_online.py.

54def init(engine_settings: dict[str, t.Any]) -> None:
55 """Initialization of the (online) engine. If no initialization is needed, drop
56 this init function."""
57 global _my_online_engine # pylint: disable=global-statement
58 _my_online_engine = engine_settings.get("name")
59
60

◆ request()

None searx.engines.demo_online.request ( str query,
dict[str, t.Any] params )
Build up the ``params`` for the online request.  In this example we build a
URL to fetch images from `artic.edu <https://artic.edu>`__

Definition at line 61 of file demo_online.py.

61def request(query: str, params: dict[str, t.Any]) -> None:
62 """Build up the ``params`` for the online request. In this example we build a
63 URL to fetch images from `artic.edu <https://artic.edu>`__
64
65 """
66 args = urlencode(
67 {
68 "q": query,
69 "page": params["pageno"],
70 "fields": "id,title,artist_display,medium_display,image_id,date_display,dimensions,artist_titles",
71 "limit": page_size,
72 }
73 )
74 params["url"] = search_api + args
75
76

◆ response()

EngineResults searx.engines.demo_online.response ( "SXNG_Response" resp)
Parse out the result items from the response.  In this example we parse the
response from `api.artic.edu <https://artic.edu>`__ and filter out all
images.

Definition at line 77 of file demo_online.py.

77def response(resp: "SXNG_Response") -> EngineResults:
78 """Parse out the result items from the response. In this example we parse the
79 response from `api.artic.edu <https://artic.edu>`__ and filter out all
80 images.
81
82 """
83 res = EngineResults()
84 json_data = loads(resp.text)
85
86 res.add(
87 res.types.Answer(
88 answer="this is a dummy answer ..",
89 url="https://example.org",
90 )
91 )
92
93 for result in json_data["data"]:
94
95 if not result["image_id"]:
96 continue
97
98 kwargs: dict[str, t.Any] = {
99 "url": "https://artic.edu/artworks/%(id)s" % result,
100 "title": result["title"] + " (%(date_display)s) // %(artist_display)s" % result,
101 "content": "%(medium_display)s // %(dimensions)s" % result,
102 "author": ", ".join(result["artist_titles"]),
103 "img_src": image_api + "/%(image_id)s/full/843,/0/default.jpg" % result,
104 "template": "images.html",
105 }
106
107 res.add(res.types.LegacyResult(**kwargs))
108
109 return res

Variable Documentation

◆ _my_online_engine

searx.engines.demo_online._my_online_engine = None
protected

Definition at line 51 of file demo_online.py.

◆ about

dict searx.engines.demo_online.about
Initial value:
1= {
2 "website": "https://www.artic.edu",
3 "wikidata_id": "Q239303",
4 "official_api_documentation": "http://api.artic.edu/docs/",
5 "use_official_api": True,
6 "require_api_key": False,
7 "results": "JSON",
8}

Definition at line 40 of file demo_online.py.

◆ categories

list searx.engines.demo_online.categories = ["general"]

Definition at line 30 of file demo_online.py.

◆ disabled

bool searx.engines.demo_online.disabled = True

Definition at line 31 of file demo_online.py.

◆ engine_type

str searx.engines.demo_online.engine_type = "online"

Definition at line 28 of file demo_online.py.

◆ image_api

str searx.engines.demo_online.image_api = "https://www.artic.edu/iiif/2/"

Definition at line 38 of file demo_online.py.

◆ page_size

int searx.engines.demo_online.page_size = 20

Definition at line 35 of file demo_online.py.

◆ paging

bool searx.engines.demo_online.paging = True

Definition at line 34 of file demo_online.py.

◆ search_api

str searx.engines.demo_online.search_api = "https://api.artic.edu/api/v1/artworks/search?"

Definition at line 37 of file demo_online.py.

◆ send_accept_language_header

bool searx.engines.demo_online.send_accept_language_header = True

Definition at line 29 of file demo_online.py.

◆ timeout

float searx.engines.demo_online.timeout = 2.0

Definition at line 32 of file demo_online.py.