Skip to content
Extraits de code Groupes Projets
Valider ef682638 rédigé par TC's avatar TC
Parcourir les fichiers

Le bot supporte maintenant le SSL

Il est mis par défaut bien sûr
parent 8ee5c40c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -23,14 +23,14 @@ our $logs_dir = "./Logs/";
# Configuration des options de connexion (serveur, login) :
our $server = 'irc.iiens.net';
our $port = 6667;
our $port = 7000;
our $nick = 'Bot';
our $passwd = '';
# Informations concernant le Bot :
our $username = $nick; # En un seul mot...
our $username = "Net::IRC.Bot"; # En un seul mot...
our $ircname = $nick.' by TC';
our $version = '0.1.1';
our $version = '0.1.2';
# Channel sur lequel on veut que le Bot aille dès la connexion :
our $channel = '#dynamiite_test';
......
......@@ -43,6 +43,7 @@ our $conn = $irc->newconn(
'Nick' => $Config::nick,
'Ircname' => $Config::ircname,
'Username' => $Config::username,
'SSL' => 1,
)
or
die $nom_prog.": Can't connect to IRC server.\n";
......
......@@ -62,6 +62,7 @@ sub chan_add
{
my ($chan, $mode) = @_;
return 0 if($chan !~ /^#/);
$chans{$chan} = defined($mode) ? $mode : "pas op";
return 1;
} # Fin chan_add
......
Ce diff est replié.
Ce diff est replié.
Ce diff est replié.
package Net::IRC::EventQueue::Entry;
use strict;
my $id = 0;
sub new {
my $class = shift;
my $time = shift;
my $content = shift;
my $self = {
'time' => $time,
'content' => $content,
'id' => "$time:" . $id++,
};
bless $self, $class;
return $self;
}
sub id {
my $self = shift;
return $self->{'id'};
}
sub time {
my $self = shift;
$self->{'time'} = $_[0] if @_;
return $self->{'time'};
}
sub content {
my $self = shift;
$self->{'content'} = $_[0] if @_;
return $self->{'content'};
}
1;
Ce diff est replié.
package Net::IRC::EventQueue;
use Net::IRC::EventQueue::Entry;
use strict;
sub new {
my $class = shift;
my $self = {
'queue' => {},
};
bless $self, $class;
}
sub queue {
my $self = shift;
return $self->{'queue'};
}
sub enqueue {
my $self = shift;
my $time = shift;
my $content = shift;
my $entry = new Net::IRC::EventQueue::Entry($time, $content);
$self->queue->{$entry->id} = $entry;
return $entry->id;
}
sub dequeue {
my $self = shift;
my $event = shift;
my $result;
if(!$event) { # we got passed nothing, so return the first event
$event = $self->head();
delete $self->queue->{$event->id};
$result = $event;
} elsif(!ref($event)) { # we got passed an id
$result = $self->queue->{$event};
delete $self->queue->{$event};
} else { # we got passed an actual event object
ref($event) eq 'Net::IRC::EventQueue::Entry'
or die "Cannot delete event type of " . ref($event) . "!";
$result = $self->queue->{$event->id};
delete $self->queue->{$event->id};
}
return $result;
}
sub head {
my $self = shift;
return undef if $self->is_empty;
no warnings; # because we want to numerically sort strings...
my $headkey = (sort {$a <=> $b} (keys(%{$self->queue})))[0];
use warnings;
return $self->queue->{$headkey};
}
sub is_empty {
my $self = shift;
return keys(%{$self->queue}) ? 0 : 1;
}
1;
......@@ -16,7 +16,12 @@ BEGIN {
use Core::Config;
use Core::Getpass;
use Core::Logging;
unshift @INC, "./";
# Ça c'est pour utiliser nos librairies avant celles installées sur le système
# Ça sert notamment pour Net::IRC, vu que je l'ai patchée (http://coltel.iiens.net/patch_Net_IRC)
my $incpath = pop @INC;
unshift @INC, $incpath;
# On vérifie qu'on n'a pas trop de droits
open ID, "id |" or die "Unable to run `id`\n";
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter