#!/bin/sh
down () {
notify-send "$3 links fetched.." -r $tmp
choice=$(printf "download\nwatch\nnext mirror" | dmenu -p "??")
[ "$choice" = "watch" ] && setsid -f mpv --referrer="$1" "$2" --force-media-title="$url" && notify-send "opening $url in mpv" -r $tmp && exit 0
[ "$choice" = "next mirror" ] && return 0
notify-send "Downloading $url" -r $tmp
case $2 in
*m3u*)
st -e ffmpeg -loglevel error -stats -referer "$1" -user_agent "$agent" -i "$2" -c copy "$url.mp4" && notify-send "Episode Downloaded $url" -r $tmp || (notify-send -u "critical" "Downloading failed $url" -r $tmp && exit 0);;
*)
st -e aria2c -U "$agent" --check-certificate=false --summary-interval=0 -x 16 -s 16 --referer="$1" "$2" -o "$url.mp4" --download-result=hide && notify-send "Episode Downloaded $url" -r $tmp || (notify-send -u "critical" "Downloading failed $url" -r $tmp && exit 0);;
esac
exit 0
}
run () {
curl -s "$base_url?page=1" -A "$agent" | sed -nE 's_.*_\1_p' &
curl -s "$base_url?page=2" -A "$agent" | sed -nE 's_.*_\1_p' &
}
base_url="https://gogohd.net"
agent="Mozilla/5.0 (Linux; Android 11; moto g(9) power) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Mobile Safari/537.36"
trap "exit 0" INT HUP
tmp=$(notify-send "Parsing $base_url.. Please wait..." -t 1500 -p)
[ -z "$*" ] && url=$(run | dmenu -p "Select Anime: " -l 20) || url=$*
[ -z "$url" ] && notify-send -u "critical" "No anime selected" -r $tmp && exit 0 || notify-send "Loading Episode $url.." -r $tmp
refr=$(curl -A "$agent" -s "$base_url/videos/$url" | sed -nE 's/.*iframe src="(.*)" al.*/\1/p')
notify-send "Fetching Embed links" -r $tmp
resp="$(curl -A "$agent" -s "https:$refr" | sed -nE 's/.*class="container-(.*)">/\1/p ; s/.*class="wrapper container-(.*)">/\1/p ; s/.*class=".*videocontent-(.*)">/\1/p ; s/.*data-value="(.*)">.*/\1/p ; s/.*data-status="1".*data-video="(.*)">.*/\1/p')"
links=$(printf "%s" "$resp" | sed -n '5,$ p')
notify-send "Fetching mp4upload links" -r $tmp
mp4up_link=$(printf "$links" | grep "mp4upload")
[ -z "$mp4up_link" ] || mp4up_video=$(curl -A "$agent" -s "$mp4up_link" -H "DNT: 1" | sed -nE 's_.*embed\|(.*)\|.*blank.*\|(.*)\|(.*)\|(.*)\|(.*)\|src.*_https://\1.mp4upload.com:\5/d/\4/\3.\2_p')
[ -z "$mp4up_video" ] || down "$mp4up_link" "$mp4up_video" "mp4upload"
notify-send "Fetching doodstream links" -r $tmp
dood_id=$(printf "$links" | sed -n "s_.*dood.*/e/__p")
[ -z "$dood_id" ] || dood_link=$(curl -A "$agent" -s "https://dood.wf/d/$dood_id" | sed -nE 's/