#!/usr/bin/perl


use RPC::XML::Client;
use Encode;
use Date::Manip;

use DBI;

$client = new RPC::XML::Client('http://localhost:9500/');


$db = DBI->connect("DBI:Pg:dbname=oma","","");
$st = $db->prepare("select * from archive");
$st->execute();
$st->bind_columns(\(@hrow{@{$st->{NAME_lc}}}));
while(@row = $st->fetchrow()) {
	$id = "/mnt/labusers/MP3/+++juni/sendungen_gen/$hrow{title}";
	$id =~ s/\ /_/g;
	$id .= "_$hrow{id}.ogg";

	$stat1{$hrow{genre}}++;

	undef(@genres);
	@genres = split(/\ /,$hrow{genre});
	for($i=0;$i<=$#genres;$i++) {
		$genres[$i] =~ s/,//g;
		if(length($genres[$i]) > 1) {
			$stat2{$genres[$i]}++;
			$count2++;
		}
	}

	
	$hrow{starttime} =~ tr/[A-Z,a-z]/0/;
	$hrow{endtime} =~ tr/[A-Z,a-z]/0/;
	$hrow{starttime} =~ s/\./:/g;
	$hrow{endtime} =~ s/\./:/g;

	$hrow{starttime} = UnixDate("$hrow{starttime}","%s");
	$hrow{endtime} = UnixDate("$hrow{endtime}","%s");

	$length = $hrow{endtime} - $hrow{starttime};
	if(-f $id) {
#		$format = `file -b $id`;
#		chop($format);
		$format = "ogg";
	}
	else {
		$format = "";
	}

	foreach $k (keys %hrow) {
		$hrow{$k} =~ s/\&/\&amp;/g;
		$hrow{$k} =~ s/'/\\'/g;
		$hrow{$k} =~ s/</&lt;/g;
		$hrow{$k} =~ s/>/&gt;/g;
	}

	$hrow{subtitle} = " $hrow{subtitle}";
	$entrie = <<EOF;
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF PUBLIC "-//DUBLIN CORE//DCMES DTD 2001 11 28//EN" "http://dublincore.org/documents/2001/11/28/dcmes-xml/dcmes-xml-dtd.dtd">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description> 
<dc:title>$hrow{title}$hrow{subtitle}</dc:title>
<dc:title:program_title></dc:title:program_title>
<dc:identifier>$id</dc:identifier>
<dc:publisher>archive.reboot.fm</dc:publisher>
<dc:date:issued>$hrow{starttime}</dc:date:issued>
<dc:date:created></dc:date:created>
<dc:date:digitized></dc:date:digitized>
<dc:format:extent>$length</dc:format:extent>
<dc:format:medium></dc:format:medium>
<dc:format:encoding>$format</dc:format:encoding>
<dc:source></dc:source>
<dc:rights></dc:rights>
<dc:rights:license>$hrow{license}</dc:rights:license>
<dc:description:toc></dc:description:toc>
<dc:description:abstract></dc:description:abstract>
<dc:description:long>$hrow{description}</dc:description:long>
<dc:type>$hrow{genre}</dc:type>
<dc:subject></dc:subject>
<dc:language></dc:language>
<dc:coverage:spatial></dc:coverage:spatial>
<dc:coverage:temporal></dc:coverage:temporal>
<dc:creator role="Artist">$hrow{artist}</dc:creator>
<dc:contributor role="Artist">$hrow{artist}</dc:contributor>
</rdf:Description>
</rdf:RDF>
EOF


	$entrie = Encode::encode("utf8",$entrie);
	print "----------------------------\n$entrie\n----------------------------\n";
	$req = RPC::XML::request->new('oma.receive_dc_set',$entrie);
	$res = $client->send_request($req);
	$x = $res->value;
	print "value: $x\n";

	if(-f $id) {
#		print "sendung vorhanden ($id)\n\n\n\n\n";
	}
	else {
#		print "sendung nicht vorhanden ($id)\n\n\n\n\n";
	}
	$count++;
}
$st->finish();


format  =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  HAS  @>>>>> (@>>>>>) Enties (%)
$k, $l, $m;
.

print "anzahl eintraege: $count\n";
foreach $k (sort { $stat1{$b} <=> $stat1{$a} } keys %stat1) {
	$l = $stat1{$k};
	$m = sprintf("%2.2f",$stat1{$k} * 100 / $count);
	write;
}
print "\n\n----------------------------------------------------------\n\n";
print "anzahl eintraege: $count2\n";
foreach $k (sort { $stat2{$b} <=> $stat2{$a} } keys %stat2) {
	$l = $stat2{$k};
	$m = sprintf("%2.2f",$stat2{$k} * 100 / $count);

		write;
}


exit;


if(0) {
$req = RPC::XML::request->new('oma.send_dc_set',1067848176,'reboot');
$res = $client->send_request($req);
$set = $res->value;
print "value: $set\n";


print "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n";
$req = RPC::XML::request->new('oma.receive_dc_set',$set);
$res = $client->send_request($req);
$x = $res->value;
print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n";
print "value: $x\n";

$req = RPC::XML::request->new('oma.update_dc_set',$set,1067848176,'reboot');
$res = $client->send_request($req);
$x = $res->value;
print "value: $x\n";
}


#%h = %$x; foreach $k (keys %h) { print "$k = $h{$k}\n"; }

