iCalculate and plot meme production rate - 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 f80a953430c2244a2c307a6424d1921ad9509644 /scm/bitreich-memestats/commit/f80a953430c2244a2c307a6424d1921ad9509644.gph bitreich.org 70 1parent 5bfeec49a9374801c59c6f8d46c423d7d019e806 /scm/bitreich-memestats/commit/5bfeec49a9374801c59c6f8d46c423d7d019e806.gph bitreich.org 70 hAuthor: Anders Damsgaard URL:mailto:anders@adamsgaard.dk bitreich.org 70 iDate: Tue, 21 Apr 2020 22:54:13 +0200 Err bitreich.org 70 i Err bitreich.org 70 iCalculate and plot meme production rate Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M extract-memecount.sh | 30 +++++++++++++++++++++++++----- Err bitreich.org 70 i M plot-memecount.sh | 17 +++++++++++++++-- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 40 insertions(+), 7 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/extract-memecount.sh b/extract-memecount.sh /scm/bitreich-memestats/file/extract-memecount.sh.gph bitreich.org 70 i@@ -15,21 +15,41 @@ if [ "$update_annna" = "yes" ]; then Err bitreich.org 70 i git pull >/dev/null 2>&1 Err bitreich.org 70 i fi Err bitreich.org 70 i Err bitreich.org 70 i+i=0 Err bitreich.org 70 i # derived from Hiltjo Posthuma's loc.sh Err bitreich.org 70 i-git log --pretty='format:%H %cd' --date="format:%Y-%m-%d" | \ Err bitreich.org 70 i+git log --pretty='format:%H %cd %at' --date="format:%Y-%m-%d" | \ Err bitreich.org 70 i sort -k 2 | uniq -f 1 | \ Err bitreich.org 70 i- while read -r commit date; do Err bitreich.org 70 i+ while read -r commit date timestamp; do Err bitreich.org 70 i Err bitreich.org 70 i # hashtags originally stored in annna-start-services... Err bitreich.org 70 i n="$(git show "$commit:annna-start-services" 2>/dev/null | \ Err bitreich.org 70 i- grep -E '^ #[a-z0-9]' | wc -l)" Err bitreich.org 70 i+ grep -E '^ #[a-z0-9]' | wc -l | awk '{print $1}')" Err bitreich.org 70 i Err bitreich.org 70 i # ...but are now stored in $memefile Err bitreich.org 70 i if [ "$n" -eq 0 ]; then Err bitreich.org 70 i- n="$(git show "$commit:$memefile" 2>/dev/null | wc -l)" Err bitreich.org 70 i+ n="$(git show "$commit:$memefile" 2>/dev/null | wc -l | awk '{print $1}')" Err bitreich.org 70 i fi Err bitreich.org 70 i Err bitreich.org 70 i if [ "$n" -gt 1 ]; then Err bitreich.org 70 i- printf '%s\t%s\t%s\n' "$date" "$commit" "$n" Err bitreich.org 70 i+ Err bitreich.org 70 i+ # only one row per day Err bitreich.org 70 i+ if [ "$date" != "$lastprintdate" ]; then Err bitreich.org 70 i+ Err bitreich.org 70 i+ if [ "$i" -eq 1 ]; then Err bitreich.org 70 i+ dn_dt="$(awk \ Err bitreich.org 70 i+ -v n0="$n0" -v t0="$t0" -v n="$n" -v t="$timestamp" \ Err bitreich.org 70 i+ 'BEGIN{print (n-n0)/(t-t0)*3600.0*24.0}')" Err bitreich.org 70 i+ else Err bitreich.org 70 i+ dn_dt=0 Err bitreich.org 70 i+ i=1 Err bitreich.org 70 i+ fi Err bitreich.org 70 i+ n0="$n" Err bitreich.org 70 i+ t0="$timestamp" Err bitreich.org 70 i+ lastprintdate="$date" Err bitreich.org 70 i+ Err bitreich.org 70 i+ printf '%s\t%s\t%s\t%s\t%s\n' \ Err bitreich.org 70 i+ "$date" "$commit" "$n" "$timestamp" "$dn_dt" Err bitreich.org 70 i+ Err bitreich.org 70 i+ fi Err bitreich.org 70 i fi Err bitreich.org 70 i done Err bitreich.org 70 1diff --git a/plot-memecount.sh b/plot-memecount.sh /scm/bitreich-memestats/file/plot-memecount.sh.gph bitreich.org 70 i@@ -11,11 +11,24 @@ fi Err bitreich.org 70 i gnuplot - <<__EOF__ Err bitreich.org 70 i set term dumb Err bitreich.org 70 i set title "annna meme count (total on $(date +%Y-%m-%d): \ Err bitreich.org 70 i-$(tail -1 "$1" | awk '{print $3}')) $semilog" Err bitreich.org 70 i+$(awk 'END{print $3}' "$1")) $semilog" Err bitreich.org 70 i set xdata time Err bitreich.org 70 i set format x "%Y-%m" Err bitreich.org 70 i-set timefmt "%Y-%m-%dT%H:%M:%S" Err bitreich.org 70 i+set timefmt "%Y-%m-%d" Err bitreich.org 70 i set xtics 2592000*4 Err bitreich.org 70 i $semilog Err bitreich.org 70 i plot '$1' u 1:3 w lp t '' pt 13 Err bitreich.org 70 i __EOF__ Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ -z "$semilog" ]; then Err bitreich.org 70 i+ gnuplot - <<__EOF__ Err bitreich.org 70 i+reset Err bitreich.org 70 i+set term dumb Err bitreich.org 70 i+set title "annna meme growth (new memes per day)" Err bitreich.org 70 i+set xdata time Err bitreich.org 70 i+set format x "%Y-%m" Err bitreich.org 70 i+#set timefmt "%Y-%m-%d" Err bitreich.org 70 i+set xtics 2592000*4 Err bitreich.org 70 i+plot '$1' u 1:5 w lp t '' pt 13 Err bitreich.org 70 i+__EOF__ Err bitreich.org 70 i+fi Err bitreich.org 70 .