summaryrefslogtreecommitdiff
path: root/searx/shared
AgeCommit message (Collapse)Author
2022-12-10move searx.shared.redisdb to searx.redisdbAlexandre Flament
2022-11-29Copy client connection kwargs before mutatingRyan Kaskel
2022-11-07[FIX] Redis initializationAlexandre FLAMENT
redis.Redis.from_url(url) doesn't check if the url is valid Before this commit: actual error are detected later when the client is actually used. With this commit, client() makes sure to return a valid Redis client or None. Also, the code makes sure not to log the password of the Redis URL
2022-11-05Initialize Redis in searx/webapp.pyAlexandre FLAMENT
settings.yml: * The default URL was unix:///usr/local/searxng-redis/run/redis.sock?db=0 * The default URL is now "false" The default URL makes the log difficult to deal with: if the admin didn't install a Redis instance, the logs record a false error. It worked before because SearXNG initialized the Redis connection when the limiter started. In this commit, SearXNG initializes Redis in searx/webapp.py so various components can use Redis without taking care of the initialization step.
2022-11-05The checker requires RedisAlexandre Flament
Remove the abstraction in searx.shared.SharedDict. Implement a basic and dedicated scheduler for the checker using a Redis script.
2022-08-07[fix] typo in uWSGI cache: searxcache --> searxngcacheMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-07-30[fix] pyright repported errorsAlexandre Flament
The errors make pyright usage useless since a new error won't be seen [1]. [1] https://github.com/searxng/searxng/pull/1569 ``` searx/compat.py:11:27 - error: Expression of type "Type[cached_property[_T@cached_property]]" cannot be assigned to declared type "Type[cached_property]" "Type[cached_property[_T@cached_property]]" is incompatible with "Type[cached_property]" Type "Type[cached_property[_T@cached_property]]" cannot be assigned to type "Type[cached_property]" (reportGeneralTypeIssues) searx/utils.py:69:36 - error: Expression of type "None" cannot be assigned to parameter of type "str" Type "None" cannot be assigned to type "str" (reportGeneralTypeIssues) searx/utils.py:573:85 - error: Expression of type "None" cannot be assigned to parameter of type "int" Type "None" cannot be assigned to type "int" (reportGeneralTypeIssues) searx/webapp.py:1306:22 - error: Argument of type "str" cannot be assigned to parameter "__a" of type "BytesPath" in function "join" Type "str" cannot be assigned to type "BytesPath" "str" is incompatible with "bytes" "str" is incompatible with protocol "PathLike[bytes]" "__fspath__" is not present (reportGeneralTypeIssues) searx/webapp.py:1306:68 - error: Argument of type "Literal['themes']" cannot be assigned to parameter "paths" of type "BytesPath" in function "join" Type "Literal['themes']" cannot be assigned to type "BytesPath" "Literal['themes']" is incompatible with "bytes" "Literal['themes']" is incompatible with protocol "PathLike[bytes]" "__fspath__" is not present (reportGeneralTypeIssues) searx/webapp.py:1306:78 - error: Argument of type "str | Any | None" cannot be assigned to parameter "paths" of type "BytesPath" in function "join" Type "str | Any | None" cannot be assigned to type "BytesPath" Type "str" cannot be assigned to type "BytesPath" "str" is incompatible with "bytes" "str" is incompatible with protocol "PathLike[bytes]" "__fspath__" is not present (reportGeneralTypeIssues) searx/webapp.py:1306:85 - error: Argument of type "Literal['img']" cannot be assigned to parameter "paths" of type "BytesPath" in function "join" Type "Literal['img']" cannot be assigned to type "BytesPath" "Literal['img']" is incompatible with "bytes" "Literal['img']" is incompatible with protocol "PathLike[bytes]" "__fspath__" is not present (reportGeneralTypeIssues) searx/engines/mongodb.py:8:6 - warning: Import "pymongo" could not be resolved (reportMissingImports) searx/engines/mysql_server.py:9:8 - warning: Import "mysql.connector" could not be resolved (reportMissingImports) searx/engines/postgresql.py:9:8 - warning: Import "psycopg2" could not be resolved from source (reportMissingModuleSource) searx/engines/xpath.py:187:28 - warning: "categories" is not defined (reportUndefinedVariable) searx/search/__init__.py:184:82 - warning: "flask" is not defined (reportUndefinedVariable) searx/search/checker/background.py:19:26 - error: Type of "schedule" is partially unknown Type of "schedule" is "(delay: Any, func: Any, *args: Any) -> Literal[True]" (reportUnknownVariableType) searx/shared/__init__.py:8:12 - warning: Import "uwsgi" could not be resolved (reportMissingImports) searx/shared/shared_uwsgi.py:5:8 - warning: Import "uwsgi" could not be resolved (reportMissingImports) ```
2022-07-30[utils/searxng.sh] implement new script to install SearXNGMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-27[pyright:strict] searx.search.checker.backgroundMartin Fischer
2022-01-27[pyright:strict] searx.shared.shared_abstractMartin Fischer
2022-01-17Revert "[hotfix] interim fix to get docker-build of CI without issues"Markus Heiser
This reverts interim fix from commit 50c4b58db and adds requirement `redis==4.1.1`. The interim fix was needed by Alpine images (Docker) [1] and has been fixed in commit [2] merged with the patch series from [3]. In redis-py version 4.1.1 this pach has been released on PyPi [4]. [1] https://github.com/redis/redis-py/issues/1869 [2] https://github.com/redis/redis-py/commit/1fc1233f [3] https://github.com/redis/redis-py/pull/1854 [4] https://github.com/redis/redis-py/issues/1880 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-12[hotfix] interim fix to get docker-build of CI without issuesMarkus Heiser
There is an issue with redis v4.1.0 [1] / for the interim lets remove this python dependency. [1] https://github.com/searxng/searxng/issues/741 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-07[fix] redis: don't create a new connection at each client() callMarkus Heiser
Suggested-by: @dalf https://github.com/searxng/searxng/pull/686#pullrequestreview-844942973 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-03[enh] add redis connector searx/shared/redisdb.pyMarkus Heiser
Add a redis connector, the default DB connector is a socket at:: unix:///usr/local/searxng-redis/run/redis.sock?db=0 To set up a redis instance simply use:: $ ./manage redis.build $ sudo -H ./manage redis.install A hint for developers: To get access rights to this instance, your developer account needs to be added to the *searxng-redis* group:: $ sudo -H ./manage redis.addgrp "${USER}" # don't forget to logout & login to get member of group Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-12-27[format.python] initial formatting of the python codeMarkus Heiser
This patch was generated by black [1]:: make format.python [1] https://github.com/psf/black Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-01-13[fix] checker: don't run the checker when uwsgi is not properly configuredAlexandre Flament
Before this commit, even with the scheduler disabled, the checker was running at least once for each uwsgi worker.
2021-01-12[mod] searx.shared: minor tweaksAlexandre Flament
searx.shared.shared_abstract.SharedDict inherit from abc.ABC searx.shared.shared_uwsgi.schedule can schedule multiple functions without issue
2021-01-12[enh] add searx.sharedAlexandre Flament
shared dictionary between the workers (UWSGI or werkzeug) scheduler: run a task once every x seconds (UWSGI or werkzeug)