X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=pages%2Fcommon.sh;h=ecf16c2596eacba18f6e696b43bee5d8bab64308;hb=8d001b4467b644b462faabdf75d8f6af50c4e2ae;hp=cf054910b384245ec03eed2d6914f2bc13f63030;hpb=06af2f639193f9e2de0bae67125b66665c327e8f;p=serve0 diff --git a/pages/common.sh b/pages/common.sh index cf05491..ecf16c2 100755 --- a/pages/common.sh +++ b/pages/common.sh @@ -33,98 +33,56 @@ page_next="${page_link}pn=$(($page + $pagesize))" page_this="${page_link}pn=$page" taglist=$( - [ -r ${_DATA}/cache/taglist ] && cat ${_DATA}/cache/taglist ||\ - for each in ${_DATA}/meta/*.meta; do +if [ -r ${_DATA}/cache/taglist ]; then + cat ${_DATA}/cache/taglist +else + truncate -s0 ${_DATA}/cache/taglist + truncate -s0 ${_DATA}/cache/tagnorm + (for each in ${_DATA}/meta/*.meta; do sed -n '2s:|:\n:gp' "$each" - done |sort -u |grep -xv '' |tee ${_DATA}/cache/taglist + done \ + | sort + echo + ) | (while read tag; do + if [ "$tag" = "$lasttag" ]; then + tagcount=$(( ${tagcount:-0} + 1 )) + else + [ -n "$lasttag" ] && printf %s\\t%s\\n "$tagcount" "$lasttag" + tagcount=1 + fi + lasttag="$tag" + done \ + | sort -rn + echo + ) | while read x tag; do + topcnt=$(grep "${tag%%:*}" ${_DATA}/cache/taglist |wc -l) + [ $topcnt -lt 10 ] \ + && printf %s\\n "$tag" >>${_DATA}/cache/taglist \ + || printf %s\\n "$tag" >>${_DATA}/cache/tagnorm + done + cat ${_DATA}/cache/taglist + sort ${_DATA}/cache/tagnorm \ + | tee -a ${_DATA}/cache/taglist + rm ${_DATA}/cache/tagnorm +fi ) -genthumb(){ - videofile="$(printf %s "$1" |sed -r "s;';'\\'';g")" - thumb="$(printf %s "$2" |sed -r "s;';'\\'';g")" - - printf '%s\n' "${_EXEC}/helpers/genthumb.sh '$videofile' '$thumb' >/dev/null 2>/dev/null" \ - | batch +list_categories(){ + echo none + printf %s "$taglist" |sed -rn 's;^([^:]+):.*$;\1;p' |sort -u } -_printVideo(){ - info="$1" - cache="${_DATA}/cache/$info.cache" - meta="${_DATA}/meta/$info.meta" - - if [ "$cache" -nt "$meta" ]; then - cat "$cache" - else - videofile="${_DATA}/videos/$info" - thumb="${_DATA}/thumbs/${info}.jpg" - [ -r "$thumb" ] || genthumb "$videofile" "$thumb" - [ -r "$meta" ] || "${_EXEC}/helpers/genmeta.sh" "$videofile" "$meta" >/dev/null - - head -n1 "$meta" |read length width height filename - [ -z "$length" ] && length=0 - [ -z "$width" ] && width=0 - [ -z "$height" ] && height=0 - - tags="$(sed -n 2p "$meta")" - 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))" - - tee "$cache" < - - Preview not yet available - -

${htmlinfo}

- - - ${minutes}min - ${width}x${height} - $(printf %s "$tags" |sed -r 's:\|*([^|]+)\|*: \1:g') - -VIDEOend - fi -} +genthumb(){ + videofile="$1" + thumb="$2" -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;;';; - Name) printf '%s\n' "${_DATA}"/videos/* |sed -r 's;^.*/;;;';; - esac + 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" -thumblist() { - 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 - filterex="s;^([0-9]+\t){3}(.+)\n.*$;\2;p" - printf '%s\n' "$filter" |tr '^' '\n' \ - | while read each; do - [ "${each:0:1}" = '!' ] && filterex="/^[^\n]+\n(.*\|)?(${each#?})(\|.*)?$/d;{${filterex}}" \ - || filterex="/^[^\n]+\n(.*\|)?(${each})(\|.*)?$/{${filterex}}" - done - - genlist \ - | if [ -n "$search" ] ; then - xargs -d '\n' printf "${_DATA}/meta/%s.meta\n" \ - | xargs -d '\n' egrep -sil "$search" \ - | sed -r 's;^.*/;;;s;\.meta$;;' - elif [ "$filterex" != "q0" ]; then - xargs -d '\n' printf "${_DATA}/meta/%s.meta\n" \ - | xargs -d '\n' sed -srn ":a;N;2!ba;{${filterex}}" - else - cat - fi \ - | sed -n "$page,$(($page + $pagesize - 1))p" \ - | tee "$cache" - fi \ - | while read line; do - _printVideo "$line" - done + "${_EXEC}"/helpers/genmeta.sh "$videofile" "$meta" >/dev/null }