Only expand youtube URIs on demand using #spoil. - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- DIR commit 25ca69b65696aa9e81a25da027abff21729c7927 DIR parent f74d2c991befa99db57a1302a7fe54b88d3127d4 HTML Author: Annna Robert-Houdin <annna@bitreich.org> Date: Sat, 25 Jan 2025 09:34:08 +0100 Only expand youtube URIs on demand using #spoil. Youtube is annoying, hates users and the expansion adds no value to the channel atm. Diffstat: M annna-message-common | 63 ++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 22 deletions(-) --- DIR diff --git a/annna-message-common b/annna-message-common @@ -39,9 +39,15 @@ regeximatch() { [ "$user" = "${ircuser}" ] && exit 0 +# Flag, if some expansion of some URI happened. uriexpansion=0 +# Do not spoil at all. nospoil=0 +# Enforce spoiling in case of hard nospoil filter. +dospoil=0 +# Expand meme hashtag and show recommendations. doexpand=0 + case "${text}" in *\#nospoil*) nospoil=1 @@ -71,6 +77,12 @@ case "${text}" in ;; *http*://*|*ytdl://*) case "${text}" in + *"#spoil"*) + dospoil=1 + ;; + esac + + case "${text}" in *http*://*) uri="$(printf "%s\n" "${text}" \ | sed -n '/.*\(https\{0,1\}:\/\/[^ ]\{1,\}\).*/s//\1/p')" @@ -239,33 +251,40 @@ case "${text}" in fi ;; *youtube.com/*|*youtu.be/*) - if [ -z "${uri##*youtu.be/*}" ] || [ -z "${uri##*/watch?v=*}" ] || [ -z "${uri##*/embed/*}" ] || [ -z "${uri##*/shorts/*}" ]; + # Youtube is so annoying and repeatedly broken; + # they hate users, only expand on request. + if [ $dospoil -eq 1 ]; then - ytid="${uri#http*://*/watch?v=}" - ytid="${ytid##*embed/}" - ytid="${ytid##*shorts/}" - ytid="${ytid##*youtu.be/}" - ytid="${ytid%%\?*}" - ytid="${ytid%%&*}" - nuri="$(get-invidious-instance)/watch?v=${ytid}" - ytt="$(printf '%s\n' "${uri}" | sed -n 's/.*[&?]t=\([^&]\{1,\}\).*/\1/p')" - if [ -n "${ytt}" ]; + if [ -z "${uri##*youtu.be/*}" ] \ + || [ -z "${uri##*/watch?v=*}" ] \ + || [ -z "${uri##*/embed/*}" ] \ + || [ -z "${uri##*/shorts/*}" ]; + then + ytid="${uri#http*://*/watch?v=}" + ytid="${ytid##*embed/}" + ytid="${ytid##*shorts/}" + ytid="${ytid##*youtu.be/}" + ytid="${ytid%%\?*}" + ytid="${ytid%%&*}" + nuri="$(get-invidious-instance)/watch?v=${ytid}" + ytt="$(printf '%s\n' "${uri}" | sed -n 's/.*[&?]t=\([^&]\{1,\}\).*/\1/p')" + [ -n "${ytt}" ] && nuri="${nuri}&t=${ytt}" + else + ytid="" + nuri="$(get-invidious-instance)/${uri#https*://*/}" + fi + fetch-uri "${nuri}" > "${tmpf}" + urititle="$(curl-grabtitle "${nuri}")" + nuris="invidious: ${nuri}" + if [ -n "${ytid}" ]; then - nuri="${nuri}&t=${ytt}" + sturi="$(subtitle-paste "${uri}")" + nuris="${nuris} ; metadata: gophers://codemadness.org/1/idiotbox.cgi?v=${ytid}" fi + nocuri=1 else - ytid="" - nuri="$(get-invidious-instance)/${uri#https*://*/}" + titleend=1 fi - fetch-uri "${nuri}" > "${tmpf}" - urititle="$(curl-grabtitle "${nuri}")" - nuris="invidious: ${nuri}" - if [ -n "${ytid}" ]; - then - sturi="$(subtitle-paste "${uri}")" - nuris="${nuris} ; metadata: gophers://codemadness.org/1/idiotbox.cgi?v=${ytid}" - fi - nocuri=1 ;; *tv.brain.rip/???-???*) nuris="$(grep 'property="og:video:secure_url' < "${tmpf}" | sed 's,.*content="\([^"]*\)".*,\1,')"