From 628b5703f3aeeed117772696f83efb344d6f337e Mon Sep 17 00:00:00 2001
From: Markus Heiser <markus.heiser@darmarit.de>
Date: Thu, 15 Jul 2021 20:10:37 +0200
Subject: [PATCH] [mod] improve video results of the qwant engine

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
---
 searx/engines/qwant.py | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py
index 00ecf7e83..00b30f4dc 100644
--- a/searx/engines/qwant.py
+++ b/searx/engines/qwant.py
@@ -29,6 +29,7 @@ from datetime import (
 )
 from json import loads
 from urllib.parse import urlencode
+from flask_babel import gettext
 
 # from searx import logger
 from searx.utils import match_language
@@ -100,6 +101,7 @@ def request(query, params):
 
 def response(resp):
     """Get response from Qwant's search request"""
+    # pylint: disable=too-many-locals, too-many-branches, too-many-statements
 
     keyword = category_to_keyword[categories[0]]
     results = []
@@ -180,11 +182,28 @@ def response(resp):
                 })
 
             elif mainline_type == 'videos':
-                content = item['desc']
+                # some videos do not have a description: while quant-video
+                # returns an empty string, such video from a quant-web query
+                # miss the 'desc' key.
+                content = item.get('desc', '')
+                s, c = item.get('source',''), item.get('channel','')
+                if content and (s or c):
+                    content += " // "
+                if s:
+                    content += "%s: %s " % (gettext("Source"), s)
+                    if c:
+                        content += "//"
+                if c:
+                    content += " %s: %s " % (gettext("Channel"), c)
                 length = timedelta(seconds=item['duration'])
                 pub_date = datetime.fromtimestamp(item['date'])
                 thumbnail = item['thumbnail']
-
+                # from some locations (DE and others?) the s2 link do
+                # response a 'Please wait ..' but does not deliver the thumbnail
+                thumbnail = thumbnail.replace(
+                    'https://s2.qwant.com',
+                    'https://s1.qwant.com', 1
+                )
                 results.append({
                     'title': title,
                     'url': res_url,