From: Jan-Pascal van Best Date: Sun, 12 Jan 2014 15:21:13 +0000 (+0100) Subject: Add scripts to count programmes per source X-Git-Tag: v1.5.2~3 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=1cc644b891f7ee1cb8ceacf0cb3321c7670ebf8a;p=tv_grab_nl_java Add scripts to count programmes per source --- diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 0000000..5fb4562 --- /dev/null +++ b/scripts/.gitignore @@ -0,0 +1,6 @@ +tv.xml +all.conf +all.cache* +out.html +test.sqlite +tv.sql diff --git a/scripts/count.sh b/scripts/count.sh new file mode 100755 index 0000000..44e7f39 --- /dev/null +++ b/scripts/count.sh @@ -0,0 +1,68 @@ +#!/bin/sh + +TVFILE=tv.xml +XSLT=xml2sql.xslt +SQLFILE=tv.sql +DB=test.sqlite + +echo "Converting xmltv data to SQL..." >&2 +saxonb-xslt -xsl:$XSLT -s:$TVFILE -dtd:off >$SQLFILE +echo "Reading data into database..." >&2 +rm $DB; sqlite3 $DB <$SQLFILE + +echo "Fetching available dates..." >&2 +DATES=$( sqlite3 $DB 'select distinct datum from programme order by datum asc' ) + +echo "" +echo "

Aantal kanalen per provider

" + +echo "Fetching number of channels per provider..." >&2 +echo "" +sqlite3 -html -header $DB 'select source as provider,count(*) as aantal from channel group by source;' +echo "
" + +SQL='SELECT source' +for datum in $DATES +do + SQL="$SQL , count(case when programme.datum=\"$datum\" then 1 end) as \`$datum\`" +done +SQL="$SQL from programme" +SQL="$SQL group by source" + +echo "Fetching number of programmes per provider per day..." >&2 +echo "

Aantal programmas in de gids per provider per dag

" +echo "" +sqlite3 -html -header $DB "$SQL" +echo "
" + +SQL='SELECT p.source, c.name' +for datum in $DATES +do + SQL="$SQL , count(case when p.datum=\"$datum\" then 1 end) as \`$datum\`" +done +SQL="$SQL FROM programme p JOIN channel c ON c.id=p.channel" +SQL="$SQL group by c.name,c.source" +SQL="$SQL order by c.name" + +echo "Fetching number of programmes per provider, per channel, per day..." >&2 +echo "

Aantal programmas in de gids per provider per kanaal per dag

" +echo "" +sqlite3 -html -header $DB "$SQL" +echo "
" + +SQL='SELECT p.source, c.name' +for datum in $DATES +do + SQL="$SQL , count(case when p.datum=\"$datum\" then 1 end) as \`$datum\`" +done +SQL="$SQL FROM programme p JOIN channel c ON c.id=p.channel" +SQL="$SQL group by c.name,c.source" +SQL="$SQL order by c.source" + +echo "Fetching number of programmes per channel, per provider, per day..." >&2 +echo "

Aantal programmas in de gids per kanaal per provider per dag

" +echo "" +sqlite3 -html -header $DB "$SQL" +echo "
" + +echo "" diff --git a/scripts/grab_all.sh b/scripts/grab_all.sh new file mode 100755 index 0000000..0ded752 --- /dev/null +++ b/scripts/grab_all.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +VERSION=$( xsltproc ../pom_version.xsl ../pom.xml ) + +GRABBER="java -jar ../target/tv_grab_nl_java-$VERSION-dep.jar" +CONFFILE="all.conf" +CACHEFILE="all.cache" + +$GRABBER --configure --config-yes --config-file=${CONFFILE} +$GRABBER --cache $CACHEFILE --config-file ${CONFFILE} --days 31 --output tv.xml diff --git a/scripts/xml2sql.xslt b/scripts/xml2sql.xslt new file mode 100644 index 0000000..1d77b0e --- /dev/null +++ b/scripts/xml2sql.xslt @@ -0,0 +1,88 @@ + + + + + + tvgids.nl + rtl.nl + horizon.tv + ziggogids.nl + + + + + + + + + + + + + BEGIN TRANSACTION; + CREATE TABLE channel (id varchar(30), source varchar(20), name varchar(255)); + + INSERT INTO channel (id,source,name) VALUES (" + + "," + + "," + + "); + + + + CREATE TABLE programme(datum date, tijd time, channel varchar(30), source varchar(20), name varchar(255)); + + INSERT INTO programme(datum,tijd,channel,source,name) VALUES (" + + ", " + + ", " + + "," + + "," + + "); + + COMMIT TRANSACTION; + + diff --git a/scripts/xmltv.dtd b/scripts/xmltv.dtd new file mode 100644 index 0000000..e69de29