50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
"""The *answerers* give instant answers related to the search query, they
|
|
usually provide answers of type :py:obj:`Answer <searx.result_types.Answer>`.
|
|
|
|
Here is an example of a very simple answerer that adds a "Hello" into the answer
|
|
area:
|
|
|
|
.. code::
|
|
|
|
from flask_babel import gettext as _
|
|
from searx.answerers import Answerer
|
|
from searx.result_types import Answer
|
|
|
|
class MyAnswerer(Answerer):
|
|
|
|
keywords = [ "hello", "hello world" ]
|
|
|
|
def info(self):
|
|
return AnswererInfo(name=_("Hello"), description=_("lorem .."), keywords=self.keywords)
|
|
|
|
def answer(self, request, search):
|
|
return [ Answer(answer="Hello") ]
|
|
|
|
----
|
|
|
|
.. autoclass:: Answerer
|
|
:members:
|
|
|
|
.. autoclass:: AnswererInfo
|
|
:members:
|
|
|
|
.. autoclass:: AnswerStorage
|
|
:members:
|
|
|
|
.. autoclass:: searx.answerers._core.ModuleAnswerer
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
__all__ = ["AnswererInfo", "Answerer", "AnswerStorage"]
|
|
|
|
|
|
from ._core import AnswererInfo, Answerer, AnswerStorage
|
|
|
|
STORAGE: AnswerStorage = AnswerStorage()
|
|
STORAGE.load_builtins()
|