diff options
author | Thorben Günther <admin@xenrox.net> | 2021-02-13 19:47:33 +0100 |
---|---|---|
committer | Thorben Günther <admin@xenrox.net> | 2021-02-13 19:47:33 +0100 |
commit | fbbd4cc21f5daf0c48b09175d95e8cb029e46f87 (patch) | |
tree | a5325a293396135b6adb0eb2304684faa9e5379e /searx/engines/peertube.py | |
parent | aef116163357b8074beedc2a37ab0c213628115c (diff) | |
download | searxng-fbbd4cc21f5daf0c48b09175d95e8cb029e46f87.tar.gz searxng-fbbd4cc21f5daf0c48b09175d95e8cb029e46f87.zip |
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.
Diffstat (limited to 'searx/engines/peertube.py')
-rw-r--r-- | searx/engines/peertube.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/searx/engines/peertube.py b/searx/engines/peertube.py index b5b17c6f2..31b4b81ec 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 = ( '<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts allow-popups" ' + 'src="' - + base_url + + sanitized_url + '{embed_path}" frameborder="0" allowfullscreen></iframe>' ) # 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( { |