Accueil > > > XCHAT - SCRIPT PERL AWAY
XCHAT - SCRIPT PERL AWAY
Information sur la source
Description
Un petit script codé en perl pour xchat remplissant les fonctions d'away. Ce n'est pas une creation mais une adaptation de la fonction away du script hyperion. J'ai modifié 2 3 trucs et l'ai francisée. Mettez le script ci-dessous dans un fichier nommé 'away.pl' et enregistrez le dans le repertoire de xhat ( ~/.xchat2/ sous linux )
Source
- #!/usr/bin/perl -w
- # Away Script pour x-chat basé sur le script Hyperion
- # Version 1.0 du 14/07/2005
-
- ###############################################################################################"
- # CONFIGURATION
- ###############################################################################################"
-
- # chemin du fichier conservant les logs
- $hlog_file = "~/.hyperion.awaylog";
-
- # complément du pseudo à utiliser lors du passage en absence
- $haway_nick = "[away]";
-
- # raison par defaut de l'absence
- $hdefreason = "parti, donc plus la c'est à dire absent !";
-
- # effacer les logs apres les avoir lus
- $hautoclear = 1;
-
- ###############################################################################################"
-
- sub make_my_time;
- sub hyp_log;
- sub wide_msg;
- sub join_handler;
- sub privmsg_handler;
- sub goaway_handler;
- sub comeback_handler;
- sub vlog_handler;
- sub clog_handler;
-
- $hreason=$hdefreason;
-
- IRC::register("Away", "1.00", "", "");
-
- IRC::print "\002\0034:: Chargement du script: Away v1.0 ::\n";
-
- IRC::add_command_handler("away", "goaway_handler");
- IRC::add_command_handler("back", "comeback_handler");
- IRC::add_command_handler("vlog", "vlog_handler");
- IRC::add_command_handler("clog", "clog_handler");
-
- IRC::add_message_handler("PRIVMSG", "privmsg_handler");
- IRC::add_print_handler("Join", "join_handler");
-
- IRC::print "\002\0034Away - Les commandes\n\n";
- IRC::print "\002\0033/away [raison] -- Se mettre absent\n";
- IRC::print "\002\0033/back -- Etre de retour\n";
- IRC::print "\002\0033/vlog -- Voir les logs\n";
- IRC::print "\002\0033/clog -- Effacer les logs\n";
-
- sub make_my_time {
- ($sec, $mun, $hr, $mday, $mon, $yr, $wday, $yday, $isdist) = localtime(time);
- return sprintf("%02d:%02d:%02d %02d/%02d/%04d", $hr, $min, $sec, $mon + 1, $mday, $yr + 1900);
- }
-
- sub hyp_log {
- open HALOG, ">>$hlog_file";
- printf HALOG "%s: %s\n", make_my_time(), @_;
- close HALOG;
- }
-
- sub wide_msg {
- my $text = join(' ', @_);
- my @channels = IRC::channel_list();
- while (@channels) {
- $nick = pop(@channels);
- $serv = pop(@channels);
- $chan = pop(@channels);
- $es = IRC::get_info(3);
- $deb = substr($chan, 0, 1);
- IRC::send_raw "PRIVMSG $chan :$text\n";
- if ($deb eq "#") {
- IRC::command_with_server(sprint_f("/notice %s %s %s", $chan, $nick, $text), $serv);
- }
- }
- }
-
- sub join_handler {
- $line = join(' ', @_);
- $line =~ s/\s+/ /g;
- @ar = split ' ', $line;
- }
-
- sub privmsg_handler
- {
- if ($haway == 0) {
- return 0;
- }
- my $line = shift(@_);
- my $n = IRC::get_info(1);
- $line =~ /:(.*)!(.*@.*) .*:(.*)/;
- my $u= $1;
- my $l= $2;
- my $m= $3;
- $n.= "\$";
- if($l =~ / $n/) {
- hyp_log "[$u] $m";
- IRC::send_raw "PRIVMSG $u : Je suis absent ($hreason) mais vos messages en privé seront enregistrés.\n";
- return 1;
- }
- return 0;
- }
-
- sub goaway_handler
- {
- $hreason = shift(@_);
- if ($haway == 1) {
- IRC::print "\002\0034:: VOUS ETES DEJA ABSENT ::\n";
- return 1;
- }
- hyp_log "-- ABSENCE --";
- IRC::print "\002\0034:: PASSAGE EN ABSENCE ::\n";
- if(!$hreason) {
- $hreason = $hdefreason;
- }
- wide_msg "s'absente ($hreason) mais vos messages en privé seront enregistrés.";
- $hold_nick = IRC::get_info(1);
- @servers = IRC::server_list();
- foreach (@servers) {
- IRC::command_with_server(sprintf("/nick %s%s", $hold_nick, $haway_nick), "$_");
- }
- $haway = 1;
- return 1;
- }
-
- sub comeback_handler
- {
- if($haway == 0) {
- IRC::print "\002\0034:: VOUS N'ETES PAS ABSENT ::\n";
- return 1;
- }
- IRC::print "\002\0034:: RETOUR DE VOTRE ABSENCE ::\n";
- @servers = IRC::server_list();
- foreach (@servers) {
- IRC::command_with_server(sprintf("/nick %s", $hold_nick), "$_");
- }
- $haway = 0;
- wide_msg "est de retour!";
- hyp_log "-- RETOUR --";
- return 1;
- }
-
- sub vlog_handler {
- IRC::print "\n\002\0034:: MESSAGES EN ABSENCE ::\n";
- open HVLOG, "<$hlog_file";
- while(<HVLOG>) {
- IRC::print $_;
- }
- close HVLOG;
- IRC::print "\002\0034:: FIN DES MESSAGES ::\n\n";
- if($hautoclear == 1) {
- clog_handler;
- }
- return 1;
- }
-
- sub clog_handler {
- open HVLOG, ">$hlog_file";
- close HVLOG;
- IRC::print "\002\0034:: LES MESSAGES EN ABSENCE ONT ETE SUPPRIMES ::\003\n";
- return 1;
- }
#!/usr/bin/perl -w
# Away Script pour x-chat basé sur le script Hyperion
# Version 1.0 du 14/07/2005
###############################################################################################"
# CONFIGURATION
###############################################################################################"
# chemin du fichier conservant les logs
$hlog_file = "~/.hyperion.awaylog";
# complément du pseudo à utiliser lors du passage en absence
$haway_nick = "[away]";
# raison par defaut de l'absence
$hdefreason = "parti, donc plus la c'est à dire absent !";
# effacer les logs apres les avoir lus
$hautoclear = 1;
###############################################################################################"
sub make_my_time;
sub hyp_log;
sub wide_msg;
sub join_handler;
sub privmsg_handler;
sub goaway_handler;
sub comeback_handler;
sub vlog_handler;
sub clog_handler;
$hreason=$hdefreason;
IRC::register("Away", "1.00", "", "");
IRC::print "\002\0034:: Chargement du script: Away v1.0 ::\n";
IRC::add_command_handler("away", "goaway_handler");
IRC::add_command_handler("back", "comeback_handler");
IRC::add_command_handler("vlog", "vlog_handler");
IRC::add_command_handler("clog", "clog_handler");
IRC::add_message_handler("PRIVMSG", "privmsg_handler");
IRC::add_print_handler("Join", "join_handler");
IRC::print "\002\0034Away - Les commandes\n\n";
IRC::print "\002\0033/away [raison] -- Se mettre absent\n";
IRC::print "\002\0033/back -- Etre de retour\n";
IRC::print "\002\0033/vlog -- Voir les logs\n";
IRC::print "\002\0033/clog -- Effacer les logs\n";
sub make_my_time {
($sec, $mun, $hr, $mday, $mon, $yr, $wday, $yday, $isdist) = localtime(time);
return sprintf("%02d:%02d:%02d %02d/%02d/%04d", $hr, $min, $sec, $mon + 1, $mday, $yr + 1900);
}
sub hyp_log {
open HALOG, ">>$hlog_file";
printf HALOG "%s: %s\n", make_my_time(), @_;
close HALOG;
}
sub wide_msg {
my $text = join(' ', @_);
my @channels = IRC::channel_list();
while (@channels) {
$nick = pop(@channels);
$serv = pop(@channels);
$chan = pop(@channels);
$es = IRC::get_info(3);
$deb = substr($chan, 0, 1);
IRC::send_raw "PRIVMSG $chan :$text\n";
if ($deb eq "#") {
IRC::command_with_server(sprint_f("/notice %s %s %s", $chan, $nick, $text), $serv);
}
}
}
sub join_handler {
$line = join(' ', @_);
$line =~ s/\s+/ /g;
@ar = split ' ', $line;
}
sub privmsg_handler
{
if ($haway == 0) {
return 0;
}
my $line = shift(@_);
my $n = IRC::get_info(1);
$line =~ /:(.*)!(.*@.*) .*:(.*)/;
my $u= $1;
my $l= $2;
my $m= $3;
$n.= "\$";
if($l =~ / $n/) {
hyp_log "[$u] $m";
IRC::send_raw "PRIVMSG $u : Je suis absent ($hreason) mais vos messages en privé seront enregistrés.\n";
return 1;
}
return 0;
}
sub goaway_handler
{
$hreason = shift(@_);
if ($haway == 1) {
IRC::print "\002\0034:: VOUS ETES DEJA ABSENT ::\n";
return 1;
}
hyp_log "-- ABSENCE --";
IRC::print "\002\0034:: PASSAGE EN ABSENCE ::\n";
if(!$hreason) {
$hreason = $hdefreason;
}
wide_msg "s'absente ($hreason) mais vos messages en privé seront enregistrés.";
$hold_nick = IRC::get_info(1);
@servers = IRC::server_list();
foreach (@servers) {
IRC::command_with_server(sprintf("/nick %s%s", $hold_nick, $haway_nick), "$_");
}
$haway = 1;
return 1;
}
sub comeback_handler
{
if($haway == 0) {
IRC::print "\002\0034:: VOUS N'ETES PAS ABSENT ::\n";
return 1;
}
IRC::print "\002\0034:: RETOUR DE VOTRE ABSENCE ::\n";
@servers = IRC::server_list();
foreach (@servers) {
IRC::command_with_server(sprintf("/nick %s", $hold_nick), "$_");
}
$haway = 0;
wide_msg "est de retour!";
hyp_log "-- RETOUR --";
return 1;
}
sub vlog_handler {
IRC::print "\n\002\0034:: MESSAGES EN ABSENCE ::\n";
open HVLOG, "<$hlog_file";
while(<HVLOG>) {
IRC::print $_;
}
close HVLOG;
IRC::print "\002\0034:: FIN DES MESSAGES ::\n\n";
if($hautoclear == 1) {
clog_handler;
}
return 1;
}
sub clog_handler {
open HVLOG, ">$hlog_file";
close HVLOG;
IRC::print "\002\0034:: LES MESSAGES EN ABSENCE ONT ETE SUPPRIMES ::\003\n";
return 1;
}
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
events pour xchat en perl [ par Jamu ]
Salut a tous Je me suis mis au perl il y a peu de temps et ce que je voudrais fair c virer les evenements textuel d'origine de mon xchat pour me coder
add_handler - Script Perl pour Xchat [ par advi ]
Bonjour à tous,j'ai créé un script Perl pour Xchat. Il fonctionne parfaitement, j'ai juste un probleme.Je suis capable de déclencher mon script sur de
recuperer l'host en perl (xchat) [ par aeled ]
J'essaie de faire une commande en perl qui récupere l'host d'un user placé en parametre.en gros /host [nick] doit renvoyer un truc du style : *!*@xxx.
Détecteur de clônes (xchat) [ par Nebula ]
Bonsoir à tous,J'essaie de faire un plugin pour X-Chat qui détecterait les clônes (j'ose espérer qu'il n'y a pas que des mircistes ici ?). Pour ce fai
aide pour Xchat [ par Jamu ]
Salut a tousTournant et codant depuis 2 ans sur mIRC,j'ai Linux depuis peu et par consécant xchat sur lequelle je débuteJe voudrais juste savoir si q
Separateur comande xchat [ par Jamu ]
Salut a tous Je suis sous xchat depuis peu,tournant avant sous mirc le separateur pour séparer deux commandes sur une meme ligne etais | (comme v
events sous xchat [ par Jamu ]
Salut a tousEn fait je voudrais juste savoir comment fair sous xchat pour donner plusieurs sons a un meme evenements textuel du genre:(je vous le fait
Il était away depuis 19min54s... [ par NicX ]
Bonjour,comme l'indique le titre,je voudrais calculer la durée de mon absence..je sais plus trop ce qu'il faut utiliser,se serait sympa de me filer un
pour chrono sur les away [ par FyLiPuSsE ]
bonjour je vrourai savoir comment fais t on un chrono sur les away :-)
Away sur plusieurs servers en meme tps [ par Jipem ]
Bonjour,J'ai un probleme existentiel que je n'arrive pas a régler :(Dans mon systeme d'away je voudrais laisser le choix entre : "Se mettre away sur c
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
RE : AIDERE : AIDE par Nico26000
Cliquez pour lire la suite par Nico26000 RE : AIDERE : AIDE par WorldDMT
Cliquez pour lire la suite par WorldDMT AIDEAIDE par Nico26000
Cliquez pour lire la suite par Nico26000
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|