Add proper invidious support. - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit 61cec39d3cc7836c1740f8f291b05456e5788866 | |
parent eda939b0ce9759565c6850bc8c4966cfd60fa2c2 | |
Author: Annna Robert-Houdin <[email protected]> | |
Date: Tue, 26 Dec 2023 21:13:56 +0100 | |
Add proper invidious support. | |
Diffstat: | |
M annna-message-common | 14 +++++++++++--- | |
A dl-invidious-instances | 13 +++++++++++++ | |
A get-invidious-instance | 5 +++++ | |
A is-invidious-instance | 21 +++++++++++++++++++++ | |
4 files changed, 50 insertions(+), 3 deletions(-) | |
--- | |
diff --git a/annna-message-common b/annna-message-common | |
@@ -92,6 +92,14 @@ case "${text}" in | |
titleend=0 | |
outputstr="" | |
+ if is-invidious-instance "${uri}"; | |
+ then | |
+ host="$(printf "%s\n" "${uri}" \ | |
+ | sed 's,.*://\([^/]*\).*,\1,')" | |
+ uri="$(printf "%s\n" "${uri}" \ | |
+ | sed "s,${host},youtube.com,")" | |
+ fi | |
+ | |
case "${urititle}" in | |
"") | |
;; | |
@@ -188,7 +196,7 @@ case "${text}" in | |
nocuri=0 | |
fi | |
;; | |
- *youtube.com/*|*youtu.be/*|*yewtu.be/*) | |
+ *youtube.com/*|*youtu.be/*) | |
if [ -z "${uri##*youtu.be/*}" ] || [ -z "${uri##*/watch?v=*}" … | |
then | |
ytid="${uri#https*://*/watch?v=}" | |
@@ -197,7 +205,7 @@ case "${text}" in | |
ytid="${ytid##*youtu.be/}" | |
ytid="${ytid%%\?*}" | |
ytid="${ytid%%&*}" | |
- nuri="https://yewtu.be/watch?v=${ytid}" | |
+ nuri="$(get-invidious-instance)/watch?v=${ytid}" | |
ytt="$(printf '%s\n' "${uri}" | sed -n 's/.*[&?]t=\([^… | |
if [ -n "${ytt}" ]; | |
then | |
@@ -205,7 +213,7 @@ case "${text}" in | |
fi | |
else | |
ytid="" | |
- nuri="https://yewtu.be/${uri#https*://*/}" | |
+ nuri="$(get-invidious-instance)/${uri#https*://*/}" | |
fi | |
fetch-uri "${nuri}" > "${tmpf}" | |
urititle="$(curl-grabtitle "${nuri}")" | |
diff --git a/dl-invidious-instances b/dl-invidious-instances | |
@@ -0,0 +1,13 @@ | |
+#!/bin/sh | |
+ | |
+cd $HOME/bin/modules/invidious | |
+ | |
+apiuri="https://api.invidious.io/instances.json" | |
+ | |
+curl -s "${apiuri}" 2>/dev/null \ | |
+ | sed 's,"uri",\n,g' \ | |
+ | sed 's,:"\([^"]*\)".*,\1,' \ | |
+ | grep "^http" \ | |
+ | grep -v ".onion" \ | |
+ | grep -v ".i2p" > invidious-instances.txt | |
+ | |
diff --git a/get-invidious-instance b/get-invidious-instance | |
@@ -0,0 +1,5 @@ | |
+#!/bin/sh | |
+ | |
+cd $HOME/bin/modules/invidious | |
+shuf -n 1 invidious-instances.txt 2>/dev/null | |
+ | |
diff --git a/is-invidious-instance b/is-invidious-instance | |
@@ -0,0 +1,21 @@ | |
+#!/bin/sh | |
+ | |
+if [ $# -lt 1 ]; | |
+then | |
+ printf "usage: %s host\n" "$(basename "${0}")" >&2 | |
+ exit 1 | |
+fi | |
+instance="${1}" | |
+ | |
+cd $HOME/bin/modules/invidious | |
+ | |
+printf "%s\n" "${instance}" \ | |
+ | sed 's,.*://\([^/]*\).*,\1,' \ | |
+ | grep "${instance}" invidious-instances.txt 2>&1 >/dev/null | |
+if [ $? -eq 0 ]; | |
+then | |
+ exit 1 | |
+else | |
+ exit 0 | |
+fi | |
+ |