#!/usr/bin/perl
###########################################
# addcd -- Add a CD to the database
# Mike Schilli, 2002 (m@perlmeister.com)
###########################################
use warnings;
use strict;

use CD;
use CDDB_get qw(get_cddb);
use Log::Log4perl qw(:easy);

Log::Log4perl->easy_init({
    level  => $DEBUG,
    layout => "%m%n"});

my @cddat=get_cddb({
    CDDB_HOST => "freedb.freedb.org",
    CDDB_PORT => 8880,
    CDDB_MODE => "cddb",
    CD_DEVICE => "/dev/cdrom",
    input     => 1,          # interactive
});

unless ($cddat[0]) {
    LOGDIE "No cddb entry found";
}

my %cddat = @cddat;

if(CD::Collection::Slot->search(
      artist   => $cddat{artist},
      title    => $cddat{title},
   )) {
    LOGDIE "$cddat{artist}/$cddat{title}" .
         " already in DB - exiting.";
}

INFO "Adding $cddat{artist}/$cddat{title}";

my $cd = CD::Collection::Slot->create(
    { cddbid   => $cddat{id},
      artist   => $cddat{artist},
      title    => $cddat{title},
      category => $cddat{cat},
    }
);

my $n=1;

foreach my $song ( @{$cddat{track}} ) {
    INFO "Adding track $n: $song";

    $cd->add_to_tracks(
        { track => $n,
          song  => $song,
        });

    $n++;
}
