summaryrefslogtreecommitdiff
path: root/searx
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2022-02-05 09:03:20 +0100
committerGitHub <noreply@github.com>2022-02-05 09:03:20 +0100
commit10e6881ca861cfce70e99ededf2c864a9274b5dd (patch)
treeba14bc3b74d17b5b6aeb9bf2b209ad3d8084ea6e /searx
parentbf987bb608cd3a2aea7990fb8de197a3ebd2907d (diff)
parentb35ef9789bc1f302ca28f46716ac9864622559d5 (diff)
downloadsearxng-10e6881ca861cfce70e99ededf2c864a9274b5dd.tar.gz
searxng-10e6881ca861cfce70e99ededf2c864a9274b5dd.zip
Merge pull request #867 from return42/fix-base_url_rand
[fix] invidious engine: store random base_url in param
Diffstat (limited to 'searx')
-rw-r--r--searx/engines/invidious.py30
-rw-r--r--searx/settings.yml10
2 files changed, 17 insertions, 23 deletions
diff --git a/searx/engines/invidious.py b/searx/engines/invidious.py
index 914615d6f..badef57fd 100644
--- a/searx/engines/invidious.py
+++ b/searx/engines/invidious.py
@@ -1,12 +1,12 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
- Invidious (Videos)
+# lint: pylint
+"""Invidious (Videos)
"""
-from urllib.parse import quote_plus
-from dateutil import parser
import time
import random
+from urllib.parse import quote_plus
+from dateutil import parser
# about
about = {
@@ -23,16 +23,11 @@ categories = ["videos", "music"]
paging = True
time_range_support = True
-
-# search-url
-
-base_url = ''
-base_url_rand = ''
+# base_url can be overwritten by a list of URLs in the settings.yml
+base_url = 'https://vid.puffyan.us'
-# do search-request
def request(query, params):
- global base_url_rand
time_range_dict = {
"day": "today",
"week": "week",
@@ -41,11 +36,11 @@ def request(query, params):
}
if isinstance(base_url, list):
- base_url_rand = random.choice(base_url)
+ params["base_url"] = random.choice(base_url)
else:
- base_url_rand = base_url
+ params["base_url"] = base_url
- search_url = base_url_rand + "api/v1/search?q={query}"
+ search_url = params["base_url"] + "/api/v1/search?q={query}"
params["url"] = search_url.format(query=quote_plus(query)) + "&page={pageno}".format(pageno=params["pageno"])
if params["time_range"] in time_range_dict:
@@ -59,7 +54,6 @@ def request(query, params):
return params
-# get response from search-request
def response(resp):
results = []
@@ -67,12 +61,12 @@ def response(resp):
embedded_url = (
'<iframe width="540" height="304" '
+ 'data-src="'
- + base_url_rand
- + 'embed/{videoid}" '
+ + resp.search_params['base_url']
+ + '/embed/{videoid}" '
+ 'frameborder="0" allowfullscreen></iframe>'
)
- base_invidious_url = base_url_rand + "watch?v="
+ base_invidious_url = resp.search_params['base_url'] + "/watch?v="
for result in search_results:
rtype = result.get("type", None)
diff --git a/searx/settings.yml b/searx/settings.yml
index 3d4c0e18a..6496e6eaf 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -786,11 +786,11 @@ engines:
# Instanes will be selected randomly, see https://api.invidious.io/ for
# instances that are stable (good uptime) and close to you.
base_url:
- - https://invidious.snopyta.org/
- - https://vid.puffyan.us/
- - https://invidious.kavin.rocks/
- - https://invidio.xamh.de/
- - https://inv.riverside.rocks/
+ - https://invidious.snopyta.org
+ - https://vid.puffyan.us
+ # - https://invidious.kavin.rocks # Error 1020 // Access denied by Cloudflare
+ - https://invidio.xamh.de
+ - https://inv.riverside.rocks
shortcut: iv
timeout: 3.0
disabled: true