Index: trunk/flactrack
===================================================================
--- trunk/flactrack	(revision 1)
+++ trunk/flactrack	(revision 3)
@@ -8,4 +8,5 @@
 
 use Getopt::Long;
+use MusicBrainz;
 
 GetOptions(
@@ -21,5 +22,5 @@
 
 # for getting track metadata from MusicBrainz
-my %info;
+my $info;
 if ($TYPE eq 'mp3') {
     require Audio::FLAC::Header;
@@ -32,6 +33,5 @@
     #TODO: calculate TOC and DISCID from cuesheet if there is no MBZ_DISCID tag present
 
-    #TODO: use the functions in mbz instead of repeating them here)
-    %info = get_musicbrainz_info($discid);
+    $info = get_musicbrainz_info($discid);
 }
 
@@ -54,10 +54,10 @@
         $cmd .= qq{| lame -b 192};
         # if there is track info, add it as ID3 tags
-        if (%info) {
-            my $track = $info{TRACKS}[$tracknum];
+        if ($info) {
+            my $track = $info->{TRACKS}[$tracknum];
             $cmd .= sprintf q{ --tt %s --ta %s --tl %s --tn %d},
-                quote($$track{TITLE}),
-                quote($$track{ARTIST}),
-                quote($info{ALBUM}),
+                quote($track->{TITLE}),
+                quote($track->{ARTIST}),
+                quote($info->{ALBUM}),
                 $tracknum;
         }
@@ -79,51 +79,2 @@
     return qq{"$string"};
 }
-
-
-# make the output terminal handle UTF-8 characters
-#binmode STDOUT, ':utf8';
-#my $info = get_musicbrainz_info($discid);
-#for my $key (sort keys %{ $info }) {
-#    print "$key=$$info{$key}\n";
-#}
-
-sub lookup_release {
-    my ($discid) = @_;
-    my $ua = LWP::UserAgent->new;
-
-    my $uri = URI->new('http://musicbrainz.org/ws/1/release/');
-    $uri->query_form(type => 'xml', discid => $discid);
-
-    my $res = $ua->get($uri);
-    return $res->decoded_content;
-}
-
-sub get_musicbrainz_info {
-    my ($discid) = @_;
-    my %info;
-
-    $info{MBZ_DISCID} = $discid;
-
-    my $xpath = XML::XPath->new();
-
-    $xpath->set_xml(lookup_release($discid));
-
-    # TODO: check for more than 1 release?
-
-    $info{MB_RELEASE_ID} = $xpath->findvalue('//release/@id');
-    $info{ALBUM}         = $xpath->findvalue('//release/title');
-    $info{ARTIST}        = $xpath->findvalue('//release/artist/name');
-    $info{TRACKS}        = [];
-
-    # TODO: get release date
-
-    my $tracknum = 1;
-    for my $track_node ($xpath->findnodes('//track-list/track')) {
-        $info{TRACKS}[$tracknum]{MB_TRACKID} = $xpath->findvalue('@id', $track_node);
-        $info{TRACKS}[$tracknum]{TITLE}      = $xpath->findvalue('title', $track_node);
-        $info{TRACKS}[$tracknum]{ARTIST}     = $xpath->findvalue('artist/name', $track_node) || $info{ARTIST};
-        $tracknum++;
-    }
-
-    return %info;
-}
