|
@@ -1,19 +1,16 @@
|
|
|
#!/usr/bin/perl
|
|
|
|
|
|
# Copyright (c) 2014 Daniel Jakots <vigdis@chown.me>
|
|
|
-<<<<<<< HEAD
|
|
|
|
|
|
# Permission to use, copy, modify, and distribute this software for any
|
|
|
# purpose with or without fee is hereby granted, provided that the above
|
|
|
# copyright notice and this permission notice appear in all copies.
|
|
|
|
|
|
-=======
|
|
|
#
|
|
|
# Permission to use, copy, modify, and distribute this software for any
|
|
|
# purpose with or without fee is hereby granted, provided that the above
|
|
|
# copyright notice and this permission notice appear in all copies.
|
|
|
#
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
@@ -29,10 +26,6 @@ use strict;
|
|
|
package MyBot;
|
|
|
use base qw( Bot::BasicBot );
|
|
|
|
|
|
-<<<<<<< HEAD
|
|
|
-
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
binmode STDOUT, ":utf8";
|
|
|
use utf8;
|
|
|
|
|
@@ -50,65 +43,7 @@ my $description = ""; # description de l'asso
|
|
|
my $bot_dir = `pwd`; chomp $bot_dir ; $bot_dir .= "/";
|
|
|
my $wrk_dir = "wrk-dir/";
|
|
|
my $dir = $bot_dir.$wrk_dir;
|
|
|
-<<<<<<< HEAD
|
|
|
|
|
|
-# dictionnaire contenant les regex permettants de trouver les FAI
|
|
|
-
|
|
|
-my %regex = (
|
|
|
- # Apinnet
|
|
|
- "apinnet" => "\\b(ap[in]|Poitou|Charente|Rochelle|(Deux[- ])?S[èe]vres?|Vienne|Angoul[eêè]me|Niort|Poitiers)",
|
|
|
- # Aquilenet
|
|
|
- "aquilenet" => "\\b(aq(ui|n)|Bord(o|e?au)|Landes|Gironde)",
|
|
|
- # ARN
|
|
|
- "arn" => "\\b(a(lsace|rn)|Stras|Colma)",
|
|
|
- # Auvernet
|
|
|
- "auvernet" => "\\b(Auver|Puy[- ](de[- ])D[oô]me|avn)",
|
|
|
- # Cafai
|
|
|
- "cafai" => "\\b(cafai|champagne|ardenn?e)",
|
|
|
- # faimaison
|
|
|
- "faimaison" => "\\b(fma|fail?m|Nantes|Loire[- ]Atlantique)",
|
|
|
- # FDN
|
|
|
- "fdn" => "\\bf(rench|dn)",
|
|
|
- # franciliens.net
|
|
|
- "franciliens" => "\\b(f(ranc|cn)|idf|Paris)",
|
|
|
- # grifon
|
|
|
- "grifon" => "\\b(grif|rennes|[îi]l?le[- ](et[- ])?vilaine)",
|
|
|
- # ilico
|
|
|
- "ilico" => "\\b(ilc|ill?[iy][ck])|(Corr?[éêèe][sz])",
|
|
|
- # illyse
|
|
|
- "illyse" => "\\b(ill?y|ill?i[sz]|lyon|rh[ôo]ne|loire|((st|saint)[- ]etienn?e))",
|
|
|
- # iloth
|
|
|
- "iloth" => "\\b(ilo|mont?pel|h[ée]rault)",
|
|
|
- # ldn
|
|
|
- "ldn" => "\\b(l(or|dn)|Nancy|Metz|Moselle|Meuse|Meurthe|Vosges)",
|
|
|
- # ndn
|
|
|
- "ndn" => "\\b(n(ice|dn)|Antibes|Cannes|Valbonne|Alpes[- ]Maritimes)",
|
|
|
- # netopi
|
|
|
- "netopi" => "\\b(netopi|Seine[- ](et[- ])?Marne)",
|
|
|
- # pclight
|
|
|
- "pclight" => "\\b(yonne|beon|cheny|pc[- ]?l)",
|
|
|
- # rézine
|
|
|
- "rezine" => "\\b(r[eé]z|Isère|Grenoble)",
|
|
|
- # rhizome
|
|
|
- "rhizome" => "\\b(rh?[iy][sz]om|Oise|Compi[eéêè]gne)",
|
|
|
- # sames
|
|
|
- "sames" => "\\bsam|(Pyrénées[- ]Atlantiques)",
|
|
|
- # sdn
|
|
|
- "sdn" => "\\b(s(all|dn)|Savoie|Haute[- ]Savoie)",
|
|
|
- # teleragno
|
|
|
- "teleragno" => "\\b(mars|telerag|telegrano)",
|
|
|
- # tetaneutral
|
|
|
- "tetaneutral" => "\\b(t(eta|tn|nn)|Toulouse|Comminges|(Haute[- ]Garon?ne))",
|
|
|
- # ail-network
|
|
|
- "ail" => "\\bail/",
|
|
|
- # chaul'hertz
|
|
|
- "chaul" => "\\b(c(haul|hz)|hertz|tarn|autan)",
|
|
|
- # igwan
|
|
|
- "igwan" => "\\b(ig[wn]|sbg|saint[- ]barth)",
|
|
|
- # neutrinet
|
|
|
- "neutrinet" => "\\b(neutri|n[tre]n|belgique)",
|
|
|
- # et le meilleur pour la fin
|
|
|
-=======
|
|
|
# symbol auquel le bot répond
|
|
|
my $symbol = "+";
|
|
|
|
|
@@ -140,7 +75,6 @@ my %regex = (
|
|
|
"chaul" => "\\b(c(haul|hz)|hertz|tarn|autan)",
|
|
|
"igwan" => "\\b(ig[wn]|sbg|saint[- ]barth)",
|
|
|
"neutrinet" => "\\b(neutri|n[tre]n|belgique)",
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
"ffdn" => "\\bf(ede|fdn|rance|édé)",
|
|
|
);
|
|
|
|
|
@@ -186,11 +120,7 @@ sub adh {
|
|
|
|
|
|
# lis le fichier et retourne le contenu
|
|
|
sub lecture_fichier {
|
|
|
-<<<<<<< HEAD
|
|
|
- my $fichier;
|
|
|
-=======
|
|
|
my $fichier = shift @_;
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
my $filename = $dir.$fichier;
|
|
|
if (-e $filename)
|
|
|
{
|
|
@@ -209,10 +139,7 @@ sub lecture_fichier {
|
|
|
|
|
|
}
|
|
|
|
|
|
-<<<<<<< HEAD
|
|
|
-=======
|
|
|
# on compte le nombre d'adh et d'abo pour la fédé
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
sub adh_abo_ffdn {
|
|
|
my $filename = $dir."ffdn.adh";
|
|
|
if (-e $filename)
|
|
@@ -237,20 +164,13 @@ sub adh_abo_ffdn {
|
|
|
sub said {
|
|
|
my ($self, $message) = @_;
|
|
|
# si on veut des info
|
|
|
-<<<<<<< HEAD
|
|
|
- if ($message->{body} =~ /^\+info/) {
|
|
|
-=======
|
|
|
+
|
|
|
if ($message->{body} =~ /^\Q$symbol\Einfo/) {
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
shift @_;
|
|
|
|
|
|
# Apinnet
|
|
|
if($message->{body} =~ /$regex{"apinnet"}/i) {
|
|
|
info("apinnet");
|
|
|
-<<<<<<< HEAD
|
|
|
-# return "site : http://www.apinnet.fr/ salon : irc://irc.geeknode.org/#Apinnet dans le Poitou-Charentes";
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
}
|
|
|
# Aquilenet
|
|
|
elsif($message->{body} =~ /$regex{"aquilenet"}/i) {
|
|
@@ -302,18 +222,10 @@ sub said {
|
|
|
}
|
|
|
# ndn
|
|
|
elsif($message->{body} =~ /$regex{"ndn"}/i) {
|
|
|
-<<<<<<< HEAD
|
|
|
-# return "Pas d'info pour Nice data network";
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
info("ndn");
|
|
|
}
|
|
|
# netopi
|
|
|
elsif($message->{body} =~ /$regex{"netopi"}/i) {
|
|
|
-<<<<<<< HEAD
|
|
|
- #return "Netopi = site : http://netopi.fr ; pas de salon ; en Seine et Marne";
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
info("netopi");
|
|
|
}
|
|
|
# pclight
|
|
@@ -334,10 +246,6 @@ sub said {
|
|
|
}
|
|
|
# sdn
|
|
|
elsif($message->{body} =~ /$regex{"sdn"}/i) {
|
|
|
-<<<<<<< HEAD
|
|
|
-# return"Sallanches Data Network = siteweb : http://sdnet.info/ ; pas de salon ; à Sallanches (73)";
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
info("sdn");
|
|
|
}
|
|
|
# teleragno
|
|
@@ -351,17 +259,9 @@ sub said {
|
|
|
# ail-network
|
|
|
elsif($message->{body} =~ /$regex{"ail"}/i) {
|
|
|
info("ail-network");
|
|
|
-<<<<<<< HEAD
|
|
|
-# return "Aïl-network = siteweb : http://ail-network.org/ ; pas de salon ; Tarn Sud-Est (Pays d'Autan)";
|
|
|
- }
|
|
|
- # chaul'hertz
|
|
|
- elsif($message->{body} =~ /$regex{"chaul"}/i) {
|
|
|
-# return "Chaul'Hertz = pas de site ni de salon ; Chauley, hameau à St Maurice en Rivière (71)";
|
|
|
-=======
|
|
|
}
|
|
|
# chaul'hertz
|
|
|
elsif($message->{body} =~ /$regex{"chaul"}/i) {
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
info("chaul-hertz");
|
|
|
}
|
|
|
# igwan
|
|
@@ -375,35 +275,18 @@ sub said {
|
|
|
elsif($message->{body} =~ /$regex{"ffdn"}/i) {
|
|
|
return "La fédération FDN regroupe des Fournisseurs d'Accès à Internet associatifs se reconnaissant dans des valeurs communes : bénévolat, solidarité, fonctionnement démocratique et à but non lucratif; défense et promotion de la neutralité du Net.";
|
|
|
}
|
|
|
-<<<<<<< HEAD
|
|
|
-
|
|
|
- # Si le FAI n'est pas valide, on l'indique
|
|
|
- else {
|
|
|
- return "commande : +info <fai> ou +info <lieu geographique>";
|
|
|
-=======
|
|
|
# Si le FAI n'est pas valide, on l'indique
|
|
|
else {
|
|
|
return "commande : ".$symbol."info <fai> ou ".$symbol."info <lieu geographique>";
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
}
|
|
|
}
|
|
|
|
|
|
# si on veut le nombre d'adhérent
|
|
|
-<<<<<<< HEAD
|
|
|
- elsif ($message->{body} =~ /^\+adh/) {
|
|
|
- shift @_;
|
|
|
-
|
|
|
- # Apinnet
|
|
|
- if($message->{body} =~ /$regex{"apinnet"}/i) {
|
|
|
- adh("apinnet");
|
|
|
-# return "site : http://www.apinnet.fr/ salon : irc://irc.geeknode.org/#Apinnet dans le Poitou-Charentes";
|
|
|
-=======
|
|
|
elsif ($message->{body} =~ /^\Q$symbol\Eadh/) {
|
|
|
shift @_;
|
|
|
# Apinnet
|
|
|
if($message->{body} =~ /$regex{"apinnet"}/i) {
|
|
|
adh("apinnet");
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
}
|
|
|
# Aquilenet
|
|
|
elsif($message->{body} =~ /$regex{"aquilenet"}/i) {
|
|
@@ -455,18 +338,10 @@ sub said {
|
|
|
}
|
|
|
# ndn
|
|
|
elsif($message->{body} =~ /$regex{"ndn"}/i) {
|
|
|
-<<<<<<< HEAD
|
|
|
-# return "Pas d'adh pour Nice data network";
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
adh("ndn");
|
|
|
}
|
|
|
# netopi
|
|
|
elsif($message->{body} =~ /$regex{"netopi"}/i) {
|
|
|
-<<<<<<< HEAD
|
|
|
- #return "Netopi = site : http://netopi.fr ; pas de salon ; en Seine et Marne";
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
adh("netopi");
|
|
|
}
|
|
|
# pclight
|
|
@@ -504,17 +379,9 @@ sub said {
|
|
|
# ail-network
|
|
|
elsif($message->{body} =~ /$regex{"ail"}/i) {
|
|
|
adh("ail-network");
|
|
|
-<<<<<<< HEAD
|
|
|
-# return "Aïl-network = siteweb : http://ail-network.org/ ; pas de salon ; Tarn Sud-Est (Pays d'Autan)";
|
|
|
}
|
|
|
# chaul'hertz
|
|
|
elsif($message->{body} =~ /$regex{"chaul"}/i) {
|
|
|
-# return "Chaul'Hertz = pas de site ni de salon ; Chauley, hameau à St Maurice en Rivière (71)";
|
|
|
-=======
|
|
|
- }
|
|
|
- # chaul'hertz
|
|
|
- elsif($message->{body} =~ /$regex{"chaul"}/i) {
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
adh("chaul-hertz");
|
|
|
}
|
|
|
# igwan
|
|
@@ -526,42 +393,18 @@ sub said {
|
|
|
adh("neutrinet");
|
|
|
}
|
|
|
elsif($message->{body} =~ /$regex{"ffdn"}/i) {
|
|
|
-<<<<<<< HEAD
|
|
|
adh("ffdn");
|
|
|
}
|
|
|
|
|
|
|
|
|
# Si le FAI n'est pas valide, on l'indique
|
|
|
else {
|
|
|
- return "commande : +adh <fai> ou +adh <lieu geographique>";
|
|
|
-=======
|
|
|
- return "La fédération FDN regroupe des Fournisseurs d'Accès à Internet associatifs se reconnaissant dans des valeurs communes : bénévolat, solidarité, fonctionnement démocratique et à but non lucratif; défense et promotion de la neutralité du Net.";
|
|
|
- }
|
|
|
- # Si le FAI n'est pas valide, on l'indique
|
|
|
- else {
|
|
|
return "commande : ".$symbol."adh <fai> ou ".$symbol."adh <lieu geographique>";
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
# si on veut de l'aide
|
|
|
-<<<<<<< HEAD
|
|
|
- elsif ($message->{body} =~ /^\+help/) {
|
|
|
- return "commandes gérées : +info, +adh, +suivi, +vote, +source";
|
|
|
-# return "pour les infos +info - pour les nombres d'adhérent·e·s et d'abonné·e·s +adh - pour les informations par rapport aux réunios de suivi +suivi - pour les sources du bot +source - ";
|
|
|
- }
|
|
|
- # les sources du bot
|
|
|
- elsif ($message->{body} =~ /^\+source/) {
|
|
|
- lecture_fichier("source");
|
|
|
- }
|
|
|
- # les infos par rapport aux réunions de suivies
|
|
|
- elsif ($message->{body} =~ /^\+suivi/) {
|
|
|
- lecture_fichier("suivi");
|
|
|
- }
|
|
|
- # les infos par rapport aux réunions de suivies
|
|
|
- elsif ($message->{body} =~ /^\+vote/) {
|
|
|
-=======
|
|
|
elsif ($message->{body} =~ /^\Q$symbol\Ehelp/) {
|
|
|
return "commandes gérées : ".$symbol."info, ".$symbol."adh, ".$symbol."suivi, ".$symbol."vote, ".$symbol."source";
|
|
|
}
|
|
@@ -575,7 +418,6 @@ sub said {
|
|
|
}
|
|
|
# les infos par rapport aux réunions de suivies
|
|
|
elsif ($message->{body} =~ /^\Q$symbol\Evote/) {
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
lecture_fichier("vote");
|
|
|
}
|
|
|
elsif ($message->{body} =~ /datafoin/) {
|
|
@@ -601,20 +443,12 @@ sub said {
|
|
|
# tout ce qu'on écrit dans /tmp/log apparait dans $channel
|
|
|
my $channel = '#ffdn';
|
|
|
sub connected {
|
|
|
-<<<<<<< HEAD
|
|
|
-# my $channel = shift;
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
my $self = shift;
|
|
|
$self->forkit({ channel => $channel,
|
|
|
run => [ qw( /usr/bin/tail -f /tmp/log ) ],
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-<<<<<<< HEAD
|
|
|
-
|
|
|
-=======
|
|
|
->>>>>>> e1e4ba39a66a7e535beea14fba6ec9c7ec75ef60
|
|
|
# aucune idée de comment on déclenche cette ligne
|
|
|
sub help { "Je suis le bot de la fédé." }
|
|
|
|