From 666b9a0ab49a243e9bdef26034f6a6b0c69f4189 Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Mon, 28 Oct 2013 13:35:23 +0100 Subject: [PATCH] createindex: Top 5 genres --- toys/createindex | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/toys/createindex b/toys/createindex index 39e3484..8f3464c 100755 --- a/toys/createindex +++ b/toys/createindex @@ -573,6 +573,52 @@ unset types counts counpcts sizes sizepcts echo ' +Top 5 genres:' +maxgenrelen=5 +maxcountlen=5 +unset counts genres +echo ' + SELECT genre, + COUNT(*) + FROM tags + WHERE genre NOT NULL + GROUP BY genre + ORDER BY COUNT(*) DESC + LIMIT 5; + +SELECT "AtOM:NoMoreFiles";' >&3 + +read -u4 line +until [[ $line == AtOM:NoMoreFiles ]] +do + genre="${line%%::AtOM:SQL:Sep::*}" + rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::" + count="${rest%%::AtOM:SQL:Sep::*}" + counts+=( "$count" ) + genres+=( "$genre" ) + maxcountlen=$(( ${#count} > maxcountlen ? ${#count} : maxcountlen )) + maxgenrelen=$(( ${#genre} > maxgenrelen ? ${#genre} : maxgenrelen )) + read -u4 line +done +head=$( + printf "| # | %'${maxcountlen}s | %-${maxgenrelen}s |" \ + Count Genre +) +sep=${head//[^|]/-} +sep=${sep//\|/+} +echo "$sep" +echo "$head" +echo "$sep" +for id in ${!genres[@]} +do + printf "| %i | %'${maxcountlen}i | %-${maxgenrelen}s |\n" \ + $(( id + 1 )) \ + "${counts[id]}" \ + "${genres[id]}" + echo "$sep" +done +unset line genre count rest genres counts maxgenrelen maxcountlen + ' echo ' SELECT COUNT(*),SUM(size)