diff --git a/Sam/commands/add.pm b/Sam/commands/add.pm index 533ff32236de7bc68475eb687b56d97b33071c20..2a7833496bf0793f5311ac163a64645c7770d6c7 100644 --- a/Sam/commands/add.pm +++ b/Sam/commands/add.pm @@ -16,7 +16,10 @@ sub exec { my $timestamp = timelocal(0, 59, 23, $day, $month - 1, $year); my $chan = Sam::Chan->new(name => $chanName); - $chan->load(); + + unless ($chan->load(speculative => 1)) { + die "ce chan n'est pas encore configuré"; + } my $event = Sam::Event->new( title => $title, diff --git a/Sam/commands/parser.pm b/Sam/commands/parser.pm index 1b508aa30cca98ce0ed599612a3578599a7c50ad..a28df21e8494add40b85f09b1b2984622bd66248 100644 --- a/Sam/commands/parser.pm +++ b/Sam/commands/parser.pm @@ -66,9 +66,15 @@ sub exec { $place =~ s/ $//; - my $id = Sam::commands::add::exec($chan->[0], $title, $day, $month, $year, $place, $desc); - - if ($id) { + my $id; + eval { + $id = Sam::commands::add::exec($chan->[0], $title, $day, $month, $year, $place, $desc); + }; + + if ($@) { + $irc->yield(privmsg => $chan => "Erreur : $@"); + } + elsif ($id) { $lastID->{$chan->[0]} = $id; $irc->yield(privmsg => $chan => "C'est enregistré. N'oubliez pas, conduire ou choisir, il faut boire !"); }