Source code for searx.engines.demo_offline

# SPDX-License-Identifier: AGPL-3.0-or-later
"""Within this module we implement a *demo offline engine*.  Do not look to
close to the implementation, its just a simple example.

Configuration
=============

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

.. code:: yaml

  - name: my offline engine
    engine: demo_offline
    shortcut: demo
    disabled: false

Implementations
===============

"""

import typing as t
import json

from searx.result_types import EngineResults
from searx.enginelib import EngineCache

if t.TYPE_CHECKING:
    from searx.search.processors import RequestParams


engine_type = "offline"
categories = ["general"]
disabled = True
timeout = 2.0

about = {
    "wikidata_id": None,
    "official_api_documentation": None,
    "use_official_api": False,
    "require_api_key": False,
    "results": "JSON",
}

# if there is a need for globals, use a leading underline
_my_offline_engine: str = ""

CACHE: EngineCache
"""Persistent (SQLite) key/value cache that deletes its values after ``expire``
seconds."""


[docs] def setup(engine_settings: dict[str, t.Any]) -> bool: """Dynamic setup of the engine settings. The origin of this demo engine is a simple json string which is loaded in this example while the engine is initialized. For more details see :py:obj:`searx.enginelib.Engine.setup`. """ global _my_offline_engine, CACHE # pylint: disable=global-statement CACHE = EngineCache(engine_settings["name"]) _my_offline_engine = ( '[ {"value": "%s"}' ', {"value":"first item"}' ', {"value":"second item"}' ', {"value":"third item"}' ']' % engine_settings.get('name') ) return True
[docs] def init(engine_settings: dict[str, t.Any]) -> bool: # pylint: disable=unused-argument """Initialization of the engine. For more details see :py:obj:`searx.enginelib.Engine.init`. """ return True