X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=pages%2Fvideoview.sh;fp=pages%2Fvideoview.sh;h=0000000000000000000000000000000000000000;hb=563bd9812b0eb73ae4e49de012e0f67ed836faaf;hp=913b15b95181bfe134a5051f9a7dfa28feb73ab7;hpb=69498b6a3a0520ffaf13b7ebc5a034b01f50b535;p=serve0 diff --git a/pages/videoview.sh b/pages/videoview.sh deleted file mode 100755 index 913b15b..0000000 --- a/pages/videoview.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/zsh - -# Copyright 2014 Paul Hänsch -# -# This file is part of Serve0. -# -# Serve0 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Serve0 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with Serve0. If not, see . - -info="$_GET[\"i\"]" -filter="$_GET[\"f\"]" -search="$_GET[\"s\"]" -order=$(echo -E "$_GET[\"o\"]" |egrep '^(Name|Date|Length)$') -page=$(echo -E "$_GET[\"p\"]" |egrep '^[0-9]+$') -[ -z "$page" ] && page=0 - -page_link='' -[ -n "$info" ] && page_link="i=$(echo -En "$info" |sed -r 's:%:%25:g;s:\&:%26:g;')&" -[ -n "$order" ] && page_link="${page_link}o=${order}&" -[ -n "$search" ] && page_link="${page_link}s=${search}&" -[ -n "$filter" ] && page_link="${page_link}f=${filter}&" -page_prev="${page_link}p=$([ "$page" = 0 ] && echo 0 || echo $(($page - 1)) )" -page_next="${page_link}p=$(($page + 1))" -page_this="${page_link}p=$page" - - -taglist=$( - [ -r ${_DATA}/cache/taglist ] && cat ${_DATA}/cache/taglist ||\ - for each in ${_DATA}/meta/*.meta; do - sed -n '2s:|:\n:gp' "$each" - done |sort -u |grep -xv '' |tee ${_DATA}/cache/taglist -) - -filterdiag() { - . ${_EXEC}/templates/filterdiag.html.sh -} - -tagger() { - n=foot - hideall="$(sed -rn "s;^([^:]+):.*$;hide_inline('${n}_\\1')\\;;p" <<<"$taglist" |sort -u)hide_inline('${n}_none');" - - . ${_EXEC}/templates/tagger.html.sh -} - -view() { - if [ -n "$info" ]; then - meta="${_DATA}/meta/$info.meta" - video="${_DATA}/videos/$info" - #reenc="${_DATA}/vp8/$(sed -r 's:^(.*)\.[a-zA-Z0-9]{3,4}$:\1:' <<<"$info" )" - #[ -f "$reenc.mp4" ] && reenc="$reenc.mp4" || reenc="$reenc.mkv" - tags="$(sed -n '2p' "$meta")" - description="$(sed -n '3,$p' "$meta")" - length=0; width=0; height=0; - eval $(mplayer -noconsolecontrols -input file=/dev/null -slave -really-quiet -identify -frames 0 -ao null -vo null "$video" 2>/dev/null\ - | sed -rn 's:ID_VIDEO_WIDTH=(.*):width=\1:p;s:ID_VIDEO_HEIGHT=(.*):height=\1:p;s:ID_LENGTH=(.*)(\..*)$:length=\1:p;') - - video="videos/$info" - . ${_EXEC}/templates/view.html.sh - fi -} - -_printVideo(){ - info="$1" - cache="${_DATA}/cache/$info.cache" - video="${_DATA}/videos/$info" - meta="${_DATA}/meta/$info.meta" - if [ "$cache" -nt "$meta" ]; then - cat "$cache" - else - tags="$(sed -n 2p "$meta")" - thumb="${_DATA}/thumbs/$info.jpg" - head -n1 "$meta" |read length width height filename - [ -z "$length" ] && length=0 - [ -z "$width" ] && width=0 - [ -z "$height" ] && height=0 - - [ -r "$meta" ] || ". ${_EXEC}/helpers/genmeta.sh" "$video" "$meta" - [ -r "$thumb" ] || ". ${_EXEC}/helpers/genthumb.sh" "$video" "$thumb" - video="$(urlsave "videos/$info")" - thumb="$(urlsave "thumbs/$info.jpg")" - - [ "$(($length % 60))" -lt 10 ] &&\ - minutes="$(($length / 60)):0$(($length % 60))" ||\ - minutes="$(($length / 60)):$(($length % 60))" - - linkinfo="$(urlsave "$info")" - - rpiaddr="$(host pfostenpanne |sed -r 's;^.* ([0-9\.]+)$;\1;')" - rpidull="http://${rpiaddr}/?path=http://jupiter:8000/${video}" - rpicgi="http://${rpiaddr}/?path=$(urlsave "http://jupiter:8000/?action=transcode&i=${linkinfo}&t=480")" - - [ $height -gt 480 ] && \ - raspi="RasPi" \ - || raspi="RasPi" - [ $height -gt 480 ] && \ - alt480="480p" \ - ||unset alt480 - [ $height -gt 240 ] && \ - alt240="240p" \ - ||unset alt240 - - tee "$cache" < - - - - $info - ${alt480} ${alt320} ${alt240} ${raspi}
- - - ${minutes}min - ${width}x${height} - $(echo -E "$tags" |sed -r 's:\|*([^|]+)\|*:\1:g') - -VIDEOend - fi -} - -_by_name(){ find ${_DATA}/videos/ -mindepth 1 -maxdepth 1 -printf '%f\n' |sort |egrep -i "$file_pattern" } -_by_date(){ ls -c ${_DATA}/videos/ |egrep -i "$file_pattern" } -_by_length(){ find ${_DATA}/by_length/ -mindepth 1 -maxdepth 1 -printf '%f\n' |sort |sed -r 's:[0-9]{5} - ::' } - -thumblist() { - cache="${_DATA}/cache/?o=${order}&s=${search}&f=${filter}&p=${page}" - if [ "$cache" -nt ${_DATA}/videos -a "$cache" -nt ${_DATA}/meta ]; then - cat "$cache" - else - filterex="q0" - for each in $(sed 's,\^, ,g' <<<"$filter"); do - if egrep -q '^!' <<<"$each"; then - this="$(sed 's,^!,,' <<<"$each")" - filterex="/${this}/q1;{${filterex}}" - else - filterex="/${each}/{${filterex}}" - fi - done - - case "$order" in - Date) genlist="_by_date" - ;; - Length) genlist="_by_length" - ;; - *) genlist="_by_name" - ;; - esac - - if [ -n "$search" ] ; then - #$genlist |egrep -i "$search" - $genlist |sed -rn 's:^(.+)$:'"${_DATA}"'/meta/\1'.meta':p' |xargs -d\\n egrep -sil "$search" |sed -rn 's:^(.*/)+([^/]+)\.meta$:\2:p' - elif [ "$filterex" != "q0" ]; then - $genlist |while read video; do - [ -r "${_DATA}/meta/$video.meta" ] && sed -rn "2{$filterex;q1}" "${_DATA}/meta/$video.meta" && echo -E "$video" - done - else - $genlist - fi |sed -n $(($page * $pagesize + 1)),$(($page * $pagesize + $pagesize))p |tee "$cache" - fi | while read line; do - _printVideo "$line" - done -} - -case "$1" in - title) - echo "Videos" - ;; - css) - . ${_EXEC}/templates/videoview.css.sh - ;; - body) - . ${_EXEC}/templates/videoview.html.sh - ;; -esac