1.8 KiB
Plugins
Further reading ..
plugins generic
Plugins can extend or replace functionality of various components of searx.
Example plugin
= 'Example plugin'
name = 'This plugin extends the suggestions with the word "example"'
description = False # disabled by default
default_on
= tuple() # optional, list of static js files
js_dependencies = tuple() # optional, list of static css files
css_dependencies
# attach callback to the post search hook
# request: flask request object
# ctx: the whole local context of the post search hook
def post_search(request, ctx):
'search'].suggestions.add('example')
ctx[return True
External plugins
External plugins are standard python modules implementing all the requirements of the standard plugins. Plugins can be enabled by adding them to settings.yml
's plugins
section. Example external plugin can be found here.
Register your plugin
To enable your plugin register your plugin in searx > plugin > __init__.py. And at the bottom of the file add your plugin like. plugins.register(name_of_python_file)
Plugin entry points
Entry points (hooks) define when a plugin runs. Right now only three hooks are implemented. So feel free to implement a hook if it fits the behaviour of your plugin.
Pre search hook
Runs BEFORE the search request. Function to implement: pre_search
Post search hook
Runs AFTER the search request. Function to implement: post_search
Result hook
Runs when a new result is added to the result list. Function to implement: on_result