Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 81af5c600aa96b1451966e2320088a22804e4ed9
  • master par défaut protégée
2 résultats

edit.pm

Blame
  • edit.pm 1,10 Kio
    package Sam::commands::edit;
    
    require Exporter;
    our @ISA = qw(Exporter);
    our @EXPORT_OK = qw(exec);
    
    use Regexp::Common qw(URI);
    use Sam::Chan;
    use Sam::Event;
    
    our $log;
    our $irc;
    
    sub exec {
        my ($id, $command, $arg, $chan_name) = @_;
    
        if ($command eq "lien" or $command eq "url" or $command eq "link") {
            if ($arg !~ /^$RE{URI}{HTTP}{-scheme => qr(https?)}$/) {
                die "Ce n'est pas une URL valide";
            }
            else {
                my $event = Sam::Event->new(id => $id);
                unless ($event->load(speculative => 1)) {
                    die "aucune soirée trouvée avec cet identifiant";
                }
    
                my $chan = Sam::Chan->new(name => $chan_name);
                unless ($chan->load(speculative => 1)) {
                    die "ce chan n'est pas encore configuré";
                }
    
                unless ($event->calendar_id == $chan->calendar_id) {
                    die "cette soirée ne fait pas partie du calendrier associé à ce chan";
                }
    
                $event->link($arg);
                $event->save();
            }
        }
        else {
            die "Commande inconnue";
        }
    }
    
    1;