+++ /dev/null
-#!/bin/zsh
-
-cgi_refdata
-info="${_GET[i]}"
-location="$(invalidate "${_GET[l]}" '(.*/)?\.\.(/.*)?|' /)"
-foreign="$(validate "${_GET[url]}" 'https?://.*' '')"
-order="${_POST[o]}"
-search="${_POST[s]}"
-filter="${_POST[f]}"
-page="${_POST[pn]}"
-
-watch_link="${_POST[page]}&"
-[ -n "$location" ] && watch_link="l=$(urlsafe "${location}")&"
-[ -n "$info" ] && watch_link="i=$(urlsafe "${info}")&"
-
-meta="${_DATA}/meta/$info.meta"
-head -n1 "$meta" |read length width height filename
-[ "$length" -gt 0 ] || length=0
-[ "$width" -gt 0 ] || width=0
-[ "$height" -gt 0 ] || height=0
-
-linkinfo="$(urlsafe "$info")"
-
-if [ "${_COOKIE[fakemp4]}" = yes ]; then
- fakename="$(printf %s "${info}" |sed -r 's;.*/;;g; s;.[^.]+$;;; s;\.;_;g;')"
- if [ "$info" != "${fakename}.mp4" ]; then
- [ -e "${_DATA}/mp4/${fakename}.mp4" ] || ln -s "${_DATA}/videos/$info" "${_DATA}/mp4/${fakename}.mp4"
- videourl="$(urlsafe "mp4/${fakename}.mp4")"
- else
- videourl="$(urlsafe "videos/$info")"
- fi
-elif [ -n "$foreign" ]; then
- _COOKIE[watch]=server
- videourl="${_GET[url]}"
- watch_link="w=$(urlsafe "${_GET[return]}")"
-elif [ -z "$info" ]; then
- videourl="$(urlsafe "${location#/}")"
-else
- videourl="$(urlsafe "videos/$info")"
-fi
-
-case "$_COOKIE[watch]" in
- raspi)
- ncat "$RHOST" "$RPORT" >&- <<-EOF
- GET /?action=watch&url=$(urlsafe "http://${HTTP_HOST}/${videourl}") HTTP/1.1$(printf \\r)
- Host: ${RHOST}$(printf \\r)
- $(printf \\r)
- EOF
- redirect "?p=playctl&${watch_link}w=$(urlsafe "${_POST[page]}#${_GET[i]}")"
- ;;
- 480p)
- [ $height -gt 480 ] && redirect "?action=transcode&i=${linkinfo}&t=480" \
- || redirect "$videourl"
- ;;
- 240p)
- [ $height -gt 240 ] && redirect "?action=transcode&i=${linkinfo}&t=240" \
- || redirect "$videourl"
- ;;
- download)
- redirect "$videourl"
- ;;
- server)
- [ -n "$location" ] && playuri="${treeroot%/}/${location#/}"
- [ -n "$info" ] && playuri="${_DATA}/videos/$info"
- [ -n "$foreign" ] && playuri="$videourl"
-
- metafile="${_DATA}/meta/${info}.meta"
-
- playmeta="${_DATA}/mplayer.meta"
- fifofile="${_DATA}/mplayer.fifo"
- statusfile="${_DATA}/mplayer.status"
- statusfile="/tmp/mplayer.status"
- volume="$(validate "$(cat "${_DATA}/mplayer.volume" || true)" '[1-9]?[0-9]|100' 20)"
- [ \! -p "$fifofile" ] && rm -f "$fifofile" && mkfifo -m 600 "$fifofile"
-
- debug PLAYURI "$playuri"
-
- if [ -f "$metafile" ]; then
- cp "$metafile" "$playmeta"
- else
- rm "$playmeta"
- "${_EXEC}"/helpers/genmeta.sh "$playuri" "$playmeta" >&-
- fi
-
- export DISPLAY=":0"
- uid="$(id |sed -rn '1s;.*uid=([0-9]+)[^0-9].*;\1;p')"
- export XDG_RUNTIME_DIR="/run/user/$uid" # required for Pulseaudio
- xrandr || true >&- # helps enable all screens
- xvkbd -text '\x+10000\y+10000' || true >&-
-
- if mplayer |grep -q MPlayer2; then
- nohup /usr/bin/mplayer \
- --slave --input=file="$fifofile" \
- --volume="$volume" \
- "$playuri" 2>"$statusfile" >&- &
- else
- nohup /usr/bin/mplayer \
- -slave -input file="$fifofile" \
- -volume "$volume" \
- "$playuri" >"$statusfile" &
- fi
-
- chmod 600 "$statusfile"
-
- redirect "?p=playctl&${watch_link}"
- ;;
- *) redirect "?p=view&${watch_link}"
- ;;
-esac
-
-
-