summaryrefslogtreecommitdiff
path: root/searx/plugins
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2025-03-07 17:35:26 +0100
committerMarkus Heiser <markus.heiser@darmarIT.de>2025-03-15 10:36:33 +0100
commitda7b069d6ebf5cb07b7b8bd9ab1ee1ca8c78e1de (patch)
tree70e8d6e9726f452a956ea8cc39e1d2bfdd0ebbe4 /searx/plugins
parentf49b2c94a9a9938133dbf94d686f00776ce96cdc (diff)
[fix] plugins: bugfix of tor_check and unit_converter
Closes: https://github.com/searxng/searxng/issues/4461 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'searx/plugins')
-rw-r--r--searx/plugins/tor_check.py22
-rw-r--r--searx/plugins/unit_converter.py8
2 files changed, 13 insertions, 17 deletions
diff --git a/searx/plugins/tor_check.py b/searx/plugins/tor_check.py
index 95281eb42..e719207bf 100644
--- a/searx/plugins/tor_check.py
+++ b/searx/plugins/tor_check.py
@@ -21,7 +21,8 @@ from flask_babel import gettext
from httpx import HTTPError
from searx.network import get
-from searx.result_types import Answer
+from searx.result_types import EngineResults
+from searx.botdetection import get_real_ip
default_on = False
@@ -51,8 +52,8 @@ url_exit_list = "https://check.torproject.org/exit-addresses"
"""URL to load Tor exit list from."""
-def post_search(request, search) -> list[Answer]:
- results = []
+def post_search(request, search) -> EngineResults:
+ results = EngineResults()
if search.search_query.pageno > 1:
return results
@@ -67,22 +68,17 @@ def post_search(request, search) -> list[Answer]:
except HTTPError:
# No answer, return error
msg = gettext("Could not download the list of Tor exit-nodes from")
- Answer(results=results, answer=f"{msg} {url_exit_list}")
+ results.add(results.types.Answer(answer=f"{msg} {url_exit_list}"))
return results
- x_forwarded_for = request.headers.getlist("X-Forwarded-For")
+ real_ip = get_real_ip(request)
- if x_forwarded_for:
- ip_address = x_forwarded_for[0]
- else:
- ip_address = request.remote_addr
-
- if ip_address in node_list:
+ if real_ip in node_list:
msg = gettext("You are using Tor and it looks like you have the external IP address")
- Answer(results=results, answer=f"{msg} {ip_address}")
+ results.add(results.types.Answer(answer=f"{msg} {real_ip}"))
else:
msg = gettext("You are not using Tor and you have the external IP address")
- Answer(results=results, answer=f"{msg} {ip_address}")
+ results.add(results.types.Answer(answer=f"{msg} {real_ip}"))
return results
diff --git a/searx/plugins/unit_converter.py b/searx/plugins/unit_converter.py
index cdd8287fe..3b9f98945 100644
--- a/searx/plugins/unit_converter.py
+++ b/searx/plugins/unit_converter.py
@@ -25,7 +25,7 @@ import babel.numbers
from flask_babel import gettext, get_locale
from searx import data
-from searx.result_types import Answer
+from searx.result_types import EngineResults
name = "Unit converter plugin"
@@ -245,8 +245,8 @@ def _parse_text_and_convert(from_query, to_query) -> str | None:
return f'{result} {target_symbol}'
-def post_search(_request, search) -> list[Answer]:
- results = []
+def post_search(_request, search) -> EngineResults:
+ results = EngineResults()
# only convert between units on the first page
if search.search_query.pageno > 1:
@@ -264,6 +264,6 @@ def post_search(_request, search) -> list[Answer]:
from_query, to_query = query.split(keyword, 1)
target_val = _parse_text_and_convert(from_query.strip(), to_query.strip())
if target_val:
- Answer(results=results, answer=target_val)
+ results.add(results.types.Answer(answer=target_val))
return results