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

Début d'ajout d'un module d'ignorance d'utilisateurs

parent 31db6b51
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
package Ignore; # right = owner ; command = ignore
# Liste des utilisateurs ignorés
my %ignore_list = ();
# ###
# ignore_main
# Permet de gérer la liste des ignorance des utilisateurs
#
# Usage :
# !ignore {add|remove} <user>@<host>
# !ignore list [<mask>]
# ###
sub ignore_main
{
my ($conn, $event , $reply_to, $ref_params) = @_;
if(defined($ref_params->[0]))
{
if($ref_params->[0] eq 'add')
{
shift(@{$ref_params});
return 1 if(ignore_add($conn, $event, $reply_to, $ref_params));
}
elsif($ref_params->[0] eq 'remove')
{
shift(@{$ref_params});
return 1 if(ignore_remove($conn, $event, $reply_to, $ref_params));
}
elsif($ref_params->[0] eq 'list')
{
shift(@{$ref_params});
return 1 if(ignore_list($conn, $event, $reply_to, $ref_params));
}
}
$ref_params->[0] = 'ignore';
Help::help_main($conn, $event, $reply_to, $ref_params);
} # Fin ignore_main
# ###
# ignore_add
# Ajoute un utilisateur à la liste d'ignore
# ###
sub ignore_add
{
my ($conn, $event, $reply_to, $ref_params) = @_;
return 0 unless defined $ref_params->[0];
$userhost = lc $ref_params->[0];
if(defined($ignore_list{$userhost}))
{
$conn->privmsg($reply_to, "$userhost already in the ignore list");
}
else
{
$ignore_list{$userhost} = time();
$conn->privmsg($reply_to, "$userhost added in the ignore list");
}
return 1;
} # ignore_add
# ###
# ignore_remove
# Enlève un utilisateur de la liste d'ignore
# ###
sub ignore_remove
{
my ($conn, $event, $reply_to, $ref_params) = @_;
return 0 unless defined $ref_params->[0];
$userhost = lc $ref_params->[0];
if(defined($ignore_list{$userhost}))
{
delete $ignore_list{$userhost};
$conn->privmsg($reply_to, "$userhost removed from the ignore list");
}
else
{
$conn->privmsg($reply_to, "$userhost isn't in the ignore list");
}
return 1;
} # ignore_remove
# ###
# ignore_list
# Affiche la liste des ignore
# ###
sub ignore_list
{
my ($conn, $event, $reply_to, $ref_params) = @_;
if(defined($ref_params->[0]))
{
my $mask = undef;
my $tmp = $ref_params->[0];
if(!eval{ $mask = qr/$tmp/i })
{
$conn->privmsg($reply_to, "'$tmp' doesn't seem to be a correct regex");
return 1;
}
my @userhost = ();
foreach my $uh (keys(%ignore_list))
{
push @userhost, $uh if($uh =~ $mask);
}
}
else
{
my @userhost = keys %ignore_list;
}
if(defined($userhost[0]))
{
if(defined($userhost[1]))
{
$conn->privmsg($reply_to, join(', ', @userhost));
}
else
{
$conn->privmsg($reply_to, $userhost[0] . ' at ' . localtime($ignore_list{$userhost[0]}));
}
}
else
{
$conn->privmsg($reply_to, "There's noone in the ignore list, yet.");
}
return 1;
} # ignore_list
# ###
# ignore_help
# Affiche l'aide de la commande '!ignore'
# ###
sub ignore_help
{
my ($conn, $event, $reply_to, $ref_params) = @_;
$conn->privmsg($reply_to, "`".$Config::command_sign."ignore {add|remove} <user>\@<host>` => "
."add/remove an ignore on <user>\@<host> (whatever nick this user uses)");
$conn->privmsg($reply_to, "`".$Config::command_sign."ignore list [<mask>]` => "
."list ignored users using <mask> as a filter (<mask> has to be a valid regex)");
return 1;
} # Fin ignore_help
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