From fbbd4cc21f5daf0c48b09175d95e8cb029e46f87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorben=20G=C3=BCnther?= Date: Sat, 13 Feb 2021 19:47:33 +0100 Subject: [PATCH] Improve peertube searching At the moment videos without a description are not shown - setting default content to "" fixes this. Another current bug is that thumbnails are not displayed. This is caused by a double slash in the url. For this every trailing slash is now stripped (for backwards compatibility) and the API response is correctly parsed. --- searx/engines/peertube.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/searx/engines/peertube.py b/searx/engines/peertube.py index b5b17c6f..31b4b81e 100644 --- a/searx/engines/peertube.py +++ b/searx/engines/peertube.py @@ -21,14 +21,15 @@ about = { # engine dependent config categories = ["videos"] paging = True -base_url = "https://peer.tube/" -supported_languages_url = base_url + "api/v1/videos/languages" +base_url = "https://peer.tube" +supported_languages_url = base_url + "/api/v1/videos/languages" # do search-request def request(query, params): + sanitized_url = base_url.rstrip("/") pageno = (params["pageno"] - 1) * 15 - search_url = base_url + "api/v1/search/videos/?pageno={pageno}&{query}" + search_url = sanitized_url + "/api/v1/search/videos/?pageno={pageno}&{query}" query_dict = {"search": query} language = params["language"].split("-")[0] # pylint: disable=undefined-variable @@ -46,6 +47,7 @@ def _get_offset_from_pageno(pageno): # get response from search-request def response(resp): + sanitized_url = base_url.rstrip("/") results = [] search_res = loads(resp.text) @@ -53,7 +55,7 @@ def response(resp): embedded_url = ( '' ) # return empty array if there are no results @@ -63,15 +65,15 @@ def response(resp): # parse results for res in search_res["data"]: title = res["name"] - url = base_url + "/videos/watch/" + res["uuid"] + url = sanitized_url + "/videos/watch/" + res["uuid"] description = res["description"] if description: content = html_to_text(res["description"]) else: - content = None - thumbnail = base_url + res["thumbnailPath"] + content = "" + thumbnail = sanitized_url + res["thumbnailPath"] publishedDate = datetime.strptime(res["publishedAt"], "%Y-%m-%dT%H:%M:%S.%fZ") - embedded = embedded_url.format(embed_path=res["embedPath"][1:]) + embedded = embedded_url.format(embed_path=res["embedPath"]) results.append( {