#!/usr/bin/env perl # $Id$ use strict; use XML::Parser; use Jcode; my @curr; my %entry; foreach my $fn (@ARGV) { @curr = (); my $p = XML::Parser->new(Style => 'Stream'); $p->parsefile($fn); foreach my $e (sort {$b cmp $a} keys %entry) { print "$e hehehe\n\n"; # date my $tmp = Jcode::jcode($entry{$e})->euc; print $tmp; # content } } my $curkey; my $curdate; my %curhash; sub StartTag { my ($p, $tag) = @_; push @curr, $tag; } sub EndTag { my ($p, $tag) = @_; if ($tag eq "dict" and @curr == 4) { if (defined $curhash{"Play Date UTC"}) { my $d = $curhash{"Play Date UTC"}; $d =~ s/^(.{10}).+$/$1/; my $tmp = qq(\t* $curhash{"Name"}: \t$curhash{"Artist"} / $curhash{"Name"} \tin {{azs('$curhash{"Album"}')}}); $tmp .= "\n\n"; $entry{$d} .= $tmp; } $curdate = ""; %curhash = (); } pop @curr; } sub Text { my ($p) = @_; s/^\s+//; s/\s+$//; if ($curr[-1] =~ /^(integer|string|date)$/ and @curr == 5) { $curhash{$curkey} = $_; } elsif ($curr[-1] eq "key") { $curkey = $_; } }