X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=pages%2Fcommon.sh;h=6b597d5abeb1d6b84cdb4f662462067632ff1fee;hb=285b1ceecc1204178cec53870a109c901d6a3839;hp=377e5f54b3f9f69450911a7d4f5312e2024dacf2;hpb=1fa16d769f765fab3eab88bdc14ecf6adf299347;p=serve0 diff --git a/pages/common.sh b/pages/common.sh index 377e5f5..6b597d5 100755 --- a/pages/common.sh +++ b/pages/common.sh @@ -19,17 +19,17 @@ filter="${_GET[f]}" search="${_GET[s]}" -order=$(echo -E "${_GET[o]}" |egrep '^(Name|Date|Length)$') -page=$(echo -E "${_GET[pn]}" |egrep '^[0-9]+$') -[ -z "$page" ] && page=0 +order="${_GET[o]}" #validated +page="${_GET[pn]}" #validated +pagesize="${_COOKIE[pagesize]}" #validated page_link='' -[ -n "$info" ] && page_link="i=$(urlsave "$info")&" +[ -n "$info" ] && page_link="i=$(urlsafe "$info")&" [ -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}pn=$([ "$page" = 0 ] && echo 0 || echo $(($page - 1)) )" -page_next="${page_link}pn=$(($page + 1))" +page_prev="${page_link}pn=$([ "$page" -le "$pagesize" ] && echo 1 || echo $(($page - $pagesize)) )" +page_next="${page_link}pn=$(($page + $pagesize))" page_this="${page_link}pn=$page" taglist=$( @@ -39,6 +39,21 @@ taglist=$( done |sort -u |grep -xv '' |tee ${_DATA}/cache/taglist ) +genthumb(){ + videofile="$1" + thumb="$2" + + nohup nice -10 "${_EXEC}"/helpers/genthumb.sh "$videofile" "$thumb" >/dev/null 2>/dev/null & + #printf '%s\n' "${_EXEC}/helpers/genthumb.sh '$videofile' '$thumb' >/dev/null 2>/dev/null" \ + #| batch +} +genmeta(){ + videofile="$1" + meta="$2" + + "${_EXEC}"/helpers/genmeta.sh "$videofile" "$meta" >/dev/null +} + _printVideo(){ info="$1" cache="${_DATA}/cache/$info.cache" @@ -48,9 +63,9 @@ _printVideo(){ cat "$cache" else videofile="${_DATA}/videos/$info" - thumb="${_DATA}/thumbs/$info.jpg" - [ -r "$meta" ] || ${_EXEC}/helpers/genmeta.sh "$videofile" "$meta" - [ -r "$thumb" ] || ${_EXEC}/helpers/genthumb.sh "$videofile" "$thumb" + thumb="${_DATA}/thumbs/${info}.jpg" + [ -r "$thumb" ] || genthumb "$videofile" "$thumb" + [ -r "$meta" ] || genmeta "$videofile" "$meta" head -n1 "$meta" |read length width height filename [ -z "$length" ] && length=0 @@ -58,9 +73,10 @@ _printVideo(){ [ -z "$height" ] && height=0 tags="$(sed -n 2p "$meta")" - video="$(urlsave "videos/$info")" - thumb="$(urlsave "thumbs/$info.jpg")" - linkinfo="$(urlsave "$info")" + video="$(urlsafe "videos/$info")" + thumb="$(urlsafe "thumbs/$info.jpg")" + linkinfo="$(urlsafe "$info")" + htmlinfo="$(htmlsafe "$info")" [ "$(($length % 60))" -lt 10 ] && minutes="$(($length / 60)):0$(($length % 60))" \ || minutes="$(($length / 60)):$(($length % 60))" @@ -70,12 +86,12 @@ _printVideo(){ Preview not yet available -

$info

+

${htmlinfo}

- + ${minutes}min ${width}x${height} - $(printf %s "$tags" |sed -r 's:\|*([^|]+)\|*:\1:g') + $(printf %s "$tags" |sed -r 's:\|*([^|]+)\|*: \1:g') VIDEOend fi @@ -83,14 +99,14 @@ VIDEOend genlist(){ case "$order" in - Date) ls -c ${_DATA}/videos/ |egrep -i "$file_pattern";; - Length) sed -sn 1p "${_DATA}/meta/"*.meta |sort -n |sed -r 's;^[0-9\t]+\t;;';; - *) printf '%s\n' "${_DATA}/meta/"*meta |sed -r 's;^.*/;;;s;\.meta$;;';; + Date) ls -c "${_DATA}"/videos/ |egrep -i "$file_pattern";; + Length) sed -sn 1p "${_DATA}"/meta/*.meta |sort -n |sed -r 's;^[0-9\t]+\t;;';; + Name) printf '%s\n' "${_DATA}"/videos/* |sed -r 's;^.*/;;;';; esac } thumblist() { - cache="${_DATA}/cache/?o=${order}&s=${search}&f=${filter}&pn=${page}" + cache="${_DATA}/cache/${pagesize}?o=${order}&s=${search}&f=${filter}&pn=${page}" if [ "$cache" -nt ${_DATA}/videos -a "$cache" -nt ${_DATA}/meta ]; then cat "$cache" else @@ -103,16 +119,19 @@ thumblist() { genlist \ | if [ -n "$search" ] ; then + debug "Applying search: ${search}" xargs -d '\n' printf "${_DATA}/meta/%s.meta\n" \ | xargs -d '\n' egrep -sil "$search" \ | sed -r 's;^.*/;;;s;\.meta$;;' - elif [ "$filterex" != "q0" ]; then + elif [ -n "$filter" ]; then + debug "Applying filters: ${filter} ++ ${filterex}" xargs -d '\n' printf "${_DATA}/meta/%s.meta\n" \ | xargs -d '\n' sed -srn ":a;N;2!ba;{${filterex}}" else + debug "No search or filtering" cat fi \ - | sed -n "$(($page * $pagesize + 1)),$(($page * $pagesize + $pagesize))p" \ + | sed -n "$page,$(($page + $pagesize - 1))p" \ | tee "$cache" fi \ | while read line; do