#!/usr/bin/perl -w

use WebService::MusicBrainz::Release;

#my $cdid = `discid /dev/cdrom | cut -b-32`;
# !$? or die "failed to get cd-disc id!";
# "0D7g5oUoqT_VI4Ia4SbHcFnfZuA-";
my $cdid = "";

if (($#ARGV+1) < 1)
{
	print "Usage: $0 MB_DISCID|DEVICE\n";
	exit(-1);
}


$cdid=shift;
if ( -b "$cdid" )
{
    $cdid=`discid $cdid`;
}
chomp($cdid);

my $ws = WebService::MusicBrainz::Release->new();
my $disc = $ws->search({ DISCID => $cdid });

#print("DISCID=$cdid\n");

#print($disc, "\n");

if ( ! defined $disc )
{
    print STDERR ("ERROR: MusicBrainz info not found for specified disc id :(\n");
    exit(-1);
}

my $rel = $disc->release();
print "SCORE=".$rel->score()."\n";
print "ARTIST=".$rel->artist()->name()."\n";
print "ALBUM=".$rel->title()."\n";

# TODO: 20070929 winex: check to output only 1 date for this discid
# each event is (date, country). do we need country in tags?
my $rel_events = $rel->release_event_list()->events();
foreach my $ev ( @$rel_events )
{
    print "DATE=".$ev->date()."\n";
    print "COUNTRY=".$ev->country()."\n";
    last; # comment this to have a full date/country event list
}

print "TRACKS=".$rel->track_list()->count()."\n";

my $ws_release = $ws->search({ MBID => $rel->id(), INC => 'tracks'});
my $release = $ws_release->release();
my $tracks = $release->track_list()->tracks();

my $i=0;
foreach my $tr ( @$tracks )
{
    printf("TRACK%02.2d=%s\n", $i+1, $tr->title());
    $i++;
}
