| 1234567891011121314151617181920212223242526272829303132 | # SPDX-License-Identifier: AGPL-3.0-or-later# lint: pylint# pyright: basic"""see :ref:`limiter src`"""import flaskfrom searx import redisdbfrom searx.plugins import loggerfrom searx.botdetection import limitername = "Request limiter"description = "Limit the number of request"default_on = Falsepreference_section = 'service'logger = logger.getChild('limiter')def pre_request():    """See :ref:`flask.Flask.before_request`"""    return limiter.filter_request(flask.request)def init(app: flask.Flask, settings) -> bool:    if not settings['server']['limiter']:        return False    if not redisdb.client():        logger.error("The limiter requires Redis")        return False    app.before_request(pre_request)    return True
 |