iFix memelog from cache. Fix makefile forced execution. - bitreich-memestats - Bitreich meme statistics and graphs. Err bitreich.org 70 hgit clone git://bitreich.org/bitreich-memestats git://hg6vgqziawt5s4dj.onion/bitreich-memestats URL:git://bitreich.org/bitreich-memestats git://hg6vgqziawt5s4dj.onion/bitreich-memestats bitreich.org 70 1Log /scm/bitreich-memestats/log.gph bitreich.org 70 1Files /scm/bitreich-memestats/files.gph bitreich.org 70 1Refs /scm/bitreich-memestats/refs.gph bitreich.org 70 1Tags /scm/bitreich-memestats/tag bitreich.org 70 1LICENSE /scm/bitreich-memestats/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit d8747a03518ac500b7027b3abe0fd2d29f110bd0 /scm/bitreich-memestats/commit/d8747a03518ac500b7027b3abe0fd2d29f110bd0.gph bitreich.org 70 1parent 726dbaf74c47d4260c83251a2145d780a5d15bc9 /scm/bitreich-memestats/commit/726dbaf74c47d4260c83251a2145d780a5d15bc9.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Sun, 29 Aug 2021 22:20:41 +0200 Err bitreich.org 70 i Err bitreich.org 70 iFix memelog from cache. Fix makefile forced execution. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M Makefile | 12 ++++++------ Err bitreich.org 70 i M media-stats.sh | 49 ++++++++++++++++++++++++++++--- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 51 insertions(+), 10 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/Makefile b/Makefile /scm/bitreich-memestats/file/Makefile.gph bitreich.org 70 i@@ -3,24 +3,24 @@ Err bitreich.org 70 i MEMECACHE = "/br/gopher/memecache" Err bitreich.org 70 i ANNNA = "/home/annna/bin" Err bitreich.org 70 i Err bitreich.org 70 i-memecount: plot-memecount.sh media-stats memecount_lin memecount_semilog Err bitreich.org 70 i+memecount: media-stats memecount_lin memecount_semilog Err bitreich.org 70 i cat memecount_lin media-stats memecount_semilog > $@ Err bitreich.org 70 i Err bitreich.org 70 i-media-stats: media-stats.sh Err bitreich.org 70 i+media-stats: Err bitreich.org 70 i ./media-stats.sh $(MEMECACHE) > $@ Err bitreich.org 70 i Err bitreich.org 70 i-memecount_lin: plot-memecount.sh memecount.log Err bitreich.org 70 i+memecount_lin: memecount.log Err bitreich.org 70 i ./plot-memecount.sh memecount.log > $@ Err bitreich.org 70 i Err bitreich.org 70 i-memecount_semilog: plot-memecount.sh memecount.log Err bitreich.org 70 i+memecount_semilog: memecount.log Err bitreich.org 70 i ./plot-memecount.sh memecount.log semilog > $@ Err bitreich.org 70 i Err bitreich.org 70 i # output format: datecommitn_memes Err bitreich.org 70 i-memecount.log: extract-memecount.sh Err bitreich.org 70 i+memecount.log: Err bitreich.org 70 i ./extract-memecount.sh $(ANNNA) $@ Err bitreich.org 70 i Err bitreich.org 70 i clean: Err bitreich.org 70 i rm -f media-stats Err bitreich.org 70 i rm -f memecount{,.log,_lin,_semilog} Err bitreich.org 70 i Err bitreich.org 70 i-.PHONY: clean Err bitreich.org 70 i+.PHONY: clean memecount.log media-stats Err bitreich.org 70 1diff --git a/media-stats.sh b/media-stats.sh /scm/bitreich-memestats/file/media-stats.sh.gph bitreich.org 70 i@@ -1,6 +1,8 @@ Err bitreich.org 70 i #!/bin/sh Err bitreich.org 70 i # output formatted table with memecache media statistics Err bitreich.org 70 i Err bitreich.org 70 i+set -x Err bitreich.org 70 i+ Err bitreich.org 70 i # estimated average image viewing time [s] Err bitreich.org 70 i img_viewing_time=5 Err bitreich.org 70 i Err bitreich.org 70 i@@ -9,18 +11,56 @@ if [ $# -ne 1 ]; then Err bitreich.org 70 i exit 1 Err bitreich.org 70 i fi Err bitreich.org 70 i Err bitreich.org 70 i+oldpathfile="memecache_pathcache.txt.old" Err bitreich.org 70 i+touch "${oldpathfile}" Err bitreich.org 70 i+oldstatusfile="${oldpathfile}.status" Err bitreich.org 70 i+todofile="memecache_pathcache.txt.todo" Err bitreich.org 70 i+touch "${todofile}" Err bitreich.org 70 i+pathfile="memecache_pathcache.txt" Err bitreich.org 70 i+ Err bitreich.org 70 i+find "$1" \ Err bitreich.org 70 i+ -maxdepth 1 \ Err bitreich.org 70 i+ -type f \ Err bitreich.org 70 i+ \! \( -name '*.orig' \ Err bitreich.org 70 i+ -o -name '*.nochip' \ Err bitreich.org 70 i+ -o -name '*.txt' \ Err bitreich.org 70 i+ -o -name '*.meme' \ Err bitreich.org 70 i+ -o -name '*.pdf' \ Err bitreich.org 70 i+ \) \ Err bitreich.org 70 i+ | sort > "${pathfile}" Err bitreich.org 70 i+comm -3 "${pathfile}" "${oldpathfile}" > "${todofile}" Err bitreich.org 70 i+ Err bitreich.org 70 i i=0 Err bitreich.org 70 i sum=0.0 Err bitreich.org 70 i-for f in "$1"/*.{mkv,mp4,webm,mp3,ogg}; do Err bitreich.org 70 i+# Get state. Err bitreich.org 70 i+if [ -e "${oldstatusfile}" ]; then Err bitreich.org 70 i+ sum="$(head -n 1 "${oldstatusfile}")" Err bitreich.org 70 i+ i="$(tail -n 1 "${oldstatusfile}")" Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+# Old work on diff. Err bitreich.org 70 i+fifofile="$(mktemp -u media-stats.fifo.XXXXXX)" Err bitreich.org 70 i+mkfifo ${fifofile} Err bitreich.org 70 i+grep '.*mkv$\|.*mp4$\|.*webm$\|.*mp3$\|.*ogg$' "${todofile}" \ Err bitreich.org 70 i+ 2>/dev/null >${fifofile} & Err bitreich.org 70 i+while read -r f; do Err bitreich.org 70 i i=$((i+=1)) Err bitreich.org 70 i new_sum="$(printf '%f + %f\n' \ Err bitreich.org 70 i "$(ffprobe -v error -show_entries format=duration \ Err bitreich.org 70 i -of default=noprint_wrappers=1:nokey=1 "$f")" "$sum" 2>/dev/null | \ Err bitreich.org 70 i bc -l)" Err bitreich.org 70 i sum="$new_sum" Err bitreich.org 70 i-done Err bitreich.org 70 i-n_img="$(ls "$1"/*.{png,jpg,JPG,gif} | wc -l)" Err bitreich.org 70 i-n_vid="$(ls "$1"/*.{mkv,mp4,webm,mp3,ogg} | wc -l)" Err bitreich.org 70 i+done < ${fifofile} Err bitreich.org 70 i+rm -f ${fifofile} Err bitreich.org 70 i+ Err bitreich.org 70 i+# Store state. Err bitreich.org 70 i+cp "${pathfile}" "${oldpathfile}" Err bitreich.org 70 i+printf "%f\n%i\n" "${sum}" "${i}" > "${oldstatusfile}" Err bitreich.org 70 i+ Err bitreich.org 70 i+n_img="$(grep '.*png$\|.*jpg$\|.*JPG$\|.*gif$' "${pathfile}" \ Err bitreich.org 70 i+ 2>/dev/null | wc -l)" Err bitreich.org 70 i+n_vid="$(grep '.*mkv$\|.*mp4$\|.*webm$\|.*mp3$|.*ogg$' "${pathfile}" \ Err bitreich.org 70 i+ 2>/dev/null | wc -l)" Err bitreich.org 70 i Err bitreich.org 70 i printf '\n ' Err bitreich.org 70 i printf '+----- statistics (%s) ------+\n' "$(date '+%Y-%m-%d')" Err bitreich.org 70 i@@ -41,3 +81,4 @@ printf '| total movie length: %10.1f h |\n' \ Err bitreich.org 70 i "$(printf '%s/3600\n' "$sum" | bc -l)" Err bitreich.org 70 i printf ' ' Err bitreich.org 70 i printf '+------------------------------------+\n' Err bitreich.org 70 i+ Err bitreich.org 70 .