From af111e413cc8b5c64ba5b0d4f10eb94239de3aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=B3genes=20Oliveira?= Date: Tue, 18 Nov 2025 15:59:19 -0300 Subject: [PATCH] [fix] recoll engine: fix media preview The results from the recoll engine were not displaying the usual toggle for showing media previews. After the changes described bellow, the toggle is displayed and works as expected. In the JSON returned by recoll-webui, the field containing the mimetype is actually `mtype`, not `mime`. Furthermore, according to the documentation for the `File` class in `searx/result_types/file.py`, `embedded` should contain the URL to the media itself. The embedding of the media into the page for preview is done in `searx/templates/simple/result_templates/file.html`. --- searx/engines/recoll.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/searx/engines/recoll.py b/searx/engines/recoll.py index ee97f330d..c9e85344c 100644 --- a/searx/engines/recoll.py +++ b/searx/engines/recoll.py @@ -38,7 +38,7 @@ Implementations import typing as t from datetime import date, timedelta -from urllib.parse import urlencode, quote +from urllib.parse import urlencode from searx.result_types import EngineResults @@ -122,15 +122,14 @@ def response(resp: "SXNG_Response") -> EngineResults: url = result.get("url", "").replace("file://" + mount_prefix, dl_prefix) - mtype = subtype = result.get("mime", "") + mtype = subtype = result.get("mtype", "") if mtype: mtype, subtype = (mtype.split("/", 1) + [""])[:2] # facilitate preview support for known mime types thumbnail = embedded = "" if mtype in ["audio", "video"]: - embedded_url = '<{ttype} controls height="166px" ' + 'src="{url}" type="{mtype}">' - embedded = embedded_url.format(ttype=mtype, url=quote(url.encode("utf8"), "/:"), mtype=result["mtype"]) + embedded = url if mtype in ["image"] and subtype in ["bmp", "gif", "jpeg", "png"]: thumbnail = url