+ proxying stub

merge-requests/6/head
Dominika Liberda 2021-06-20 21:14:13 +00:00
parent b4d7f4e268
commit 48d5ef22a7
2 changed files with 22 additions and 16 deletions

View File

@ -9,3 +9,6 @@ if [[ "${r[url]}" == "/proxy"* ]]; then
cfg[proxy_url]='http(s|)://[a-z0-9-]*\.googlevideo\.com/.*'
cfg[proxy_param]='url'
fi
cfg[regionlock_proxy]=false
cfg[regionlock_proxy_url]='http://.../'

View File

@ -48,29 +48,32 @@ if [[ "${get_data[v]}" ]]; then
source templates/head.sh
fi
else
cd temp
video=$(haruhi-dl --ie-key Youtube --write-pages --cookies "${cfg[_cookies]}" -J "http://youtube.com/watch?v=${get_data[v]}")
if [[ $video == '' ]]; then # okay who did this
random_hash=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 24 | head -n 1)
video=$(haruhi-dl --ie-key Youtube --write-pages --cookies ${cfg[_cookies]} -J "http://youtube.com/watch?v=${get_data[v]}" &> output$random_hash.log)
video=$(haruhi-dl --ie-key Youtube --write-pages --cookies ${cfg[_cookies]} -J "http://youtube.com/watch?v=${get_data[v]}" 2> temp/output$random_hash.log)
if [[ $video == '' ]]; then # seriously WHO DID THIS
output=$(cat output$random_hash.log)
rm output$random_hash.log
cd ..
if [[ $output == 'ERROR: Video unavailable' ]]; then
strings[error]='Video unavailable'
elif [[ $output == *'ERROR: Incomplete YouTube ID'* ]]; then
strings[error]='Incomplete YouTube ID'
else
strings[error]='Unexpected error has occured'
if [[ "${cfg[regionlock_proxy]}" == true ]]; then
# retrying w/ proxy!
video=$(haruhi-dl --ie-key Youtube --write-pages --cookies ${cfg[_cookies]} --proxy "${cfg[regionlock_proxy_url]}" -J "http://youtube.com/watch?v=${get_data[v]}" 2> output$random_hash.log)
fi
output=$(cat temp/output$random_hash.log)
rm temp/output$random_hash.log
if [[ $video == '' ]]; then
if [[ $output == 'ERROR: Video unavailable' ]]; then
strings[error]='Video unavailable'
elif [[ $output == *'ERROR: Incomplete YouTube ID'* ]]; then
strings[error]='Incomplete YouTube ID'
else
strings[error]='Unexpected error has occured'
fi
source templates/head.sh
source "${cfg[namespace]}/templates/header.shs"
render strings "${cfg[namespace]}/templates/themes/${cfg[template]}/watch_error.t"
return
fi
source templates/head.sh
source "${cfg[namespace]}/templates/header.shs"
render strings "${cfg[namespace]}/templates/themes/${cfg[template]}/watch_error.t"
return
fi
fi
cd ..
#echo "http://youtube.com/watch?v=${get_data[v]}" > /dev/stderr
strings[channel_id]=$(jq -r '.channel_url' <<< "$video" | sed -s 's/http:\/\/www.youtube.com\/channel\///')
strings[uploader]=$(jq -r '.uploader' <<< "$video")