Browse Source

et on branche le hash

Vigdis (DanJ) 10 years ago
parent
commit
4daaca45ab
1 changed files with 194 additions and 184 deletions
  1. 194 184
      unefede.pl

+ 194 - 184
unefede.pl

@@ -1,4 +1,20 @@
 #!/usr/bin/perl
 #!/usr/bin/perl
+
+# Copyright (c) 2014 Daniel Jakots <vigdis@chown.me>
+
+# 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.
+
+# 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
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
 use warnings;
 use warnings;
 use strict;
 use strict;
 
 
@@ -28,66 +44,61 @@ my $dir = $bot_dir.$wrk_dir;
 
 
 my %regex = (
 my %regex = (
     # Apinnet
     # Apinnet
-    "apinnet"      => "\b(ap[in]|Poitou|Charente|Rochelle|(Deux[- ])?S[èe]vres?|Vienne|Angoul[eêè]me|Niort|Poitiers)",
+    "apinnet"      => "\\b(ap[in]|Poitou|Charente|Rochelle|(Deux[- ])?S[èe]vres?|Vienne|Angoul[eêè]me|Niort|Poitiers)",
     # Aquilenet
     # Aquilenet
-    "aquilenet"    => "\b(aq(ui|n)|Bord(o|e?au)|Landes|Gironde)",
+    "aquilenet"    => "\\b(aq(ui|n)|Bord(o|e?au)|Landes|Gironde)",
     # ARN
     # ARN
-    "arn"          => "\b(a(lsace|rn)|Stras|Colma)",
+    "arn"          => "\\b(a(lsace|rn)|Stras|Colma)",
     # Auvernet
     # Auvernet
-    "auvernet"     => "\b(Auver|Puy[- ](de[- ])D[oô]me|avn)",
+    "auvernet"     => "\\b(Auver|Puy[- ](de[- ])D[oô]me|avn)",
     # Cafai
     # Cafai
-    "cafai"        => "\b(cafai|champagne|ardenn?e)",
+    "cafai"        => "\\b(cafai|champagne|ardenn?e)",
     # faimaison
     # faimaison
-    "faimaison"    => "\b(fma|fail?m|Nantes|Loire[- ]Atlantique)",
+    "faimaison"    => "\\b(fma|fail?m|Nantes|Loire[- ]Atlantique)",
     # FDN
     # FDN
-    "fdn"          => "\bf(rench|dn)",
+    "fdn"          => "\\bf(rench|dn)",
     # franciliens.net
     # franciliens.net
-    "franciliens"  =>  "\b(f(ranc|cn)|idf|Paris)",
+    "franciliens"  =>  "\\b(f(ranc|cn)|idf|Paris)",
     # grifon
     # grifon
-    "grifon"       => "\b(grif|rennes|[îi]l?le[- ](et[- ])?vilaine)",
+    "grifon"       => "\\b(grif|rennes|[îi]l?le[- ](et[- ])?vilaine)",
     # ilico
     # ilico
-    "ilico"        => "\b(ilc|ill?[iy][ck])|(Corr?[éêèe][sz])",
+    "ilico"        => "\\b(ilc|ill?[iy][ck])|(Corr?[éêèe][sz])",
     # illyse
     # illyse
-    "illyse"       => "\b(ill?y|ill?i[sz]|lyon|rh[ôo]ne|loire|((st|saint)[- ]etienn?e))",
+    "illyse"       => "\\b(ill?y|ill?i[sz]|lyon|rh[ôo]ne|loire|((st|saint)[- ]etienn?e))",
     # iloth
     # iloth
-    "iloth"        => "\b(ilo|mont?pel|h[ée]rault)",
+    "iloth"        => "\\b(ilo|mont?pel|h[ée]rault)",
     # ldn
     # ldn
-    "ldn"          => "\b(l(or|dn)|Nancy|Metz|Moselle|Meuse|Meurthe|Vosges)",
+    "ldn"          => "\\b(l(or|dn)|Nancy|Metz|Moselle|Meuse|Meurthe|Vosges)",
     # ndn
     # ndn
-    "ndn"          => "\b(n(ice|dn)|Antibes|Cannes|Valbonne|Alpes[- ]Maritimes)",
+    "ndn"          => "\\b(n(ice|dn)|Antibes|Cannes|Valbonne|Alpes[- ]Maritimes)",
     # netopi
     # netopi
-    "netopi"       => "\b(netopi|Seine[- ](et[- ])?Marne)",
+    "netopi"       => "\\b(netopi|Seine[- ](et[- ])?Marne)",
     # pclight
     # pclight
-    "pclight"      => "\b(yonne|beon|cheny|pc[- ]?l)",
+    "pclight"      => "\\b(yonne|beon|cheny|pc[- ]?l)",
     # rézine
     # rézine
-    "rezine"       => "\b(r[eé]z|Isère|Grenoble)",
+    "rezine"       => "\\b(r[eé]z|Isère|Grenoble)",
     # rhizome
     # rhizome
-    "rhizome"      => "\b(rh?[iy][sz]om|Oise|Compi[eéêè]gne)",
+    "rhizome"      => "\\b(rh?[iy][sz]om|Oise|Compi[eéêè]gne)",
     # sames
     # sames
-    "same"         => "\bsam|(Pyrénées[- ]Atlantiques)",
+    "sames"         => "\\bsam|(Pyrénées[- ]Atlantiques)",
     # sdn
     # sdn
-    "sdn"          => "\b(s(all|dn)|Savoie|Haute[- ]Savoie)",
+    "sdn"          => "\\b(s(all|dn)|Savoie|Haute[- ]Savoie)",
     # teleragno
     # teleragno
-    "teleragno"    => "\b(mars|telerag|telegrano)",
+    "teleragno"    => "\\b(mars|telerag|telegrano)",
     # tetaneutral
     # tetaneutral
-    "tetaneutral"  => "\b(t(eta|tn|nn)|Toulouse|Comminges|(Haute[- ]Garon?ne))",
+    "tetaneutral"  => "\\b(t(eta|tn|nn)|Toulouse|Comminges|(Haute[- ]Garon?ne))",
     # ail-network
     # ail-network
-    "ail"          => "\bail/",
+    "ail"          => "\\bail/",
     # chaul'hertz
     # chaul'hertz
-    "chaul"        => "\b(c(haul|hz)|hertz|tarn|autan)",
+    "chaul"        => "\\b(c(haul|hz)|hertz|tarn|autan)",
     # igwan
     # igwan
-    "igwan"        => "\b(ig[wn]|sbg|saint[- ]barth)",
+    "igwan"        => "\\b(ig[wn]|sbg|saint[- ]barth)",
     # neutrinet
     # neutrinet
-    "neutrinet"    => "\b(neutri|n[tre]n|belgique)",
+    "neutrinet"    => "\\b(neutri|n[tre]n|belgique)",
     # et le meilleur pour la fin 
     # et le meilleur pour la fin 
-    "ffdn"         => "\bf(ede|fdn|rance|édé)",
+    "ffdn"         => "\\bf(ede|fdn|rance|édé)",
     );
     );
 
 
-
-
-
-
-
 # Lis le fichier contenant les infos d'un FAI
 # Lis le fichier contenant les infos d'un FAI
 sub info {
 sub info {
     my $fai = shift @_;
     my $fai = shift @_;
@@ -175,120 +186,118 @@ sub said {
     # si on veut des info
     # si on veut des info
     if ($message->{body} =~ /^\+info/) {
     if ($message->{body} =~ /^\+info/) {
         shift @_;
         shift @_;
+
 	# Apinnet
 	# Apinnet
-	if($message->{body} =~ /(ap[in]|Poitou|Charente|Rochelle|(Deux[- ])?S[èe]vres?|Vienne|Angoul[eêè]me|Niort|Poitiers)/) {
+	if($message->{body} =~ /$regex{"apinnet"}/i) {
 	    info("apinnet");
 	    info("apinnet");
 #	    return "site : http://www.apinnet.fr/ salon : irc://irc.geeknode.org/#Apinnet dans le  Poitou-Charentes";
 #	    return "site : http://www.apinnet.fr/ salon : irc://irc.geeknode.org/#Apinnet dans le  Poitou-Charentes";
 	}	
 	}	
-	elsif($message->{body} =~ /\btest/) {
-	    info ("ilico");
-	}
 	# Aquilenet
 	# Aquilenet
-	elsif($message->{body} =~ /\b(aq(ui|n)|Bord(o|e?au)|Landes|Gironde)/i) {
-	    info ("aquilenet");
+	elsif($message->{body} =~ /$regex{"aquilenet"}/i) {
+	    info("aquilenet");
 	}
 	}
  	# ARN
  	# ARN
-	elsif($message->{body} =~ /\b(a(lsace|rn)|Stras|Colma)/i) {
+	elsif($message->{body} =~ /$regex{"arn"}/i) {
 	    info("arn");
 	    info("arn");
 	}
 	}
 	# Auvernet
 	# Auvernet
-	elsif($message->{body} =~ /\b(Auver|Puy[- ](de[- ])D[oô]me|avn)/i) {
-	    info ("auvernet");
+	elsif($message->{body} =~ /$regex{"auvernet"}/i) {
+	    info("auvernet");
 	}
 	}
 	# Cafai
 	# Cafai
-	elsif($message->{body} =~ /\b(cafai|champagne|ardenn?e)/i) {
+	elsif($message->{body} =~ /$regex{"cafai"}/i) {
 	    info("cafai");
 	    info("cafai");
 	}
 	}
 	# faimaison
 	# faimaison
-	elsif($message->{body} =~ /\b(fma|fail?m|Nantes|Loire[- ]Atlantique)/i) {
-	    info ("faimaison");
+	elsif($message->{body} =~ /$regex{"faimaison"}/i) {
+	    info("faimaison");
 	}
 	}
 	# FDN
 	# FDN
-	elsif($message->{body} =~ /\bf(rench|dn)/i) {
-	    info ("fdn");
+	elsif($message->{body} =~ /$regex{"fdn"}/i) {
+	    info("fdn");
 	}
 	}
 	# franciliens.net
 	# franciliens.net
-	elsif($message->{body} =~ /\b(f(ranc|cn)|idf|Paris)/i) {
-	    info ("franciliens");
+	elsif($message->{body} =~ /$regex{"franciliens"}/i) {
+	    info("franciliens");
 	}
 	}
 	# grifon
 	# grifon
-	elsif($message->{body} =~ /\b(grif|rennes|[îi]l?le[- ](et[- ])?vilaine)/i) {
+	elsif($message->{body} =~ /$regex{"grifon"}/i) {
 	    info("grifon");
 	    info("grifon");
 	}
 	}
 	# ilico
 	# ilico
-	elsif($message->{body} =~ /\b(ilc|ill?[iy][ck])|(Corr?[éêèe][sz])/i) {
+	elsif($message->{body} =~ /$regex{"ilico"}/i) {
 	    info("ilico");
 	    info("ilico");
 	}
 	}
 	# illyse
 	# illyse
-	elsif($message->{body} =~ /\b(ill?y|ill?i[sz]|lyon|rh[ôo]ne|loire|((st|saint)[- ]etienn?e))/i) {
-	    info ("illyse");
+	elsif($message->{body} =~ /$regex{"illyse"}/i) {
+	    info("illyse");
 	}
 	}
 	# iloth
 	# iloth
-	elsif($message->{body} =~ /\b(ilo|mont?pel|h[ée]rault)/i) {
+	elsif($message->{body} =~ /$regex{"iloth"}/i) {
 	    info("iloth");
 	    info("iloth");
 	}
 	}
 	# ldn
 	# ldn
-	elsif($message->{body} =~ /\b(l(or|dn)|Nancy|Metz|Moselle|Meuse|Meurthe|Vosges)/i) {
+	elsif($message->{body} =~ /$regex{"ldn"}/i) {
 	    info("ldn");
 	    info("ldn");
 	}
 	}
 	# ndn
 	# ndn
-	elsif($message->{body} =~ /\b(n(ice|dn)|Antibes|Cannes|Valbonne|Alpes[- ]Maritimes)/i) {
+	elsif($message->{body} =~ /$regex{"ndn"}/i) {
 #    	    return "Pas d'info pour Nice data network";
 #    	    return "Pas d'info pour Nice data network";
 	    info("ndn");
 	    info("ndn");
 	}
 	}
 	# netopi
 	# netopi
-	elsif($message->{body} =~ /\b(netopi|Seine[- ](et[- ])?Marne)/i) {
+	elsif($message->{body} =~ /$regex{"netopi"}/i) {
 	    #return "Netopi = site : http://netopi.fr ; pas de salon ; en Seine et Marne";
 	    #return "Netopi = site : http://netopi.fr ; pas de salon ; en Seine et Marne";
 	    info("netopi");
 	    info("netopi");
 	}
 	}
 	# pclight
 	# pclight
-	elsif($message->{body} =~ /\b(yonne|beon|cheny|pc[- ]?l)/i) {
+	elsif($message->{body} =~ /$regex{"pclight"}/i) {
 	    info("pclight");
 	    info("pclight");
 	}
 	}
 	# rézine
 	# rézine
-	elsif($message->{body} =~ /\b(r[eé]z|Isère|Grenoble)/i) {
+	elsif($message->{body} =~ /$regex{"rezine"}/i) {
 	    info("rezine");
 	    info("rezine");
 	}
 	}
 	# rhizome
 	# rhizome
-	elsif($message->{body} =~ /\b(rh?[iy][sz]om|Oise|Compi[eéêè]gne)/i) {
+	elsif($message->{body} =~ /$regex{"rhizome"}/i) {
 	    info("rhizome");
 	    info("rhizome");
 	}
 	}
 	# sames
 	# sames
-	elsif($message->{body} =~ /\bsam|(Pyrénées[- ]Atlantiques)/i) {
+	elsif($message->{body} =~ /$regex{"sames"}/i) {
 	    info("sames");
 	    info("sames");
 	}
 	}
 	# sdn
 	# sdn
-	elsif($message->{body} =~ /\b(s(all|dn)|Savoie|Haute[- ]Savoie)/i) {
+	elsif($message->{body} =~ /$regex{"sdn"}/i) {
 #	    return"Sallanches Data Network = siteweb : http://sdnet.info/ ; pas de salon ; à Sallanches (73)";
 #	    return"Sallanches Data Network = siteweb : http://sdnet.info/ ; pas de salon ; à Sallanches (73)";
 	    info("sdn");
 	    info("sdn");
 	}
 	}
 	# teleragno
 	# teleragno
-	elsif($message->{body} =~ /\b(mars|telerag|telegrano)/i) {
-	    info ("teleragno");
+	elsif($message->{body} =~ /$regex{"teleragno"}/i) {
+	    info("teleragno");
 	}
 	}
 	# tetaneutral
 	# tetaneutral
-	elsif($message->{body} =~ /\b(t(eta|tn|nn)|Toulouse|Comminges|(Haute[- ]Garon?ne))/i) {
-	    info ("tetaneutral");
+	elsif($message->{body} =~ /$regex{"tetaneutral"}/i) {
+	    info("tetaneutral");
 	}
 	}
 	# ail-network
 	# ail-network
-	elsif($message->{body} =~ /\bail/i) {
-	    info ("ail-network");
+	elsif($message->{body} =~ /$regex{"ail"}/i) {
+	    info("ail-network");
 #	    return "Aïl-network = siteweb : http://ail-network.org/ ; pas de salon ; Tarn Sud-Est (Pays d'Autan)";
 #	    return "Aïl-network = siteweb : http://ail-network.org/ ; pas de salon ; Tarn Sud-Est (Pays d'Autan)";
 	}
 	}
 	# chaul'hertz
 	# chaul'hertz
-	elsif($message->{body} =~ /\b(c(haul|hz)|hertz|tarn|autan)/i) {
+	elsif($message->{body} =~ /$regex{"chaul"}/i) {
 #	    return "Chaul'Hertz = pas de site ni de salon ; Chauley, hameau à St Maurice en Rivière (71)";	
 #	    return "Chaul'Hertz = pas de site ni de salon ; Chauley, hameau à St Maurice en Rivière (71)";	
-	    info ("chaul-hertz");
+	    info("chaul-hertz");
 	}
 	}
 	# igwan
 	# igwan
-	elsif($message->{body} =~ /\b(ig[wn]|sbg|saint[- ]barth)/i) {
-	    info ("igwan");	
+	elsif($message->{body} =~ /$regex{"igwan"}/i) {
+	    info("igwan");	
 	}
 	}
 	# neutrinet
 	# neutrinet
-	elsif($message->{body} =~ /\b(neutri|n[tre]n|belgique)/i) {
+	elsif($message->{body} =~ /$regex{"neutrinet"}/i) {
 	    info("neutrinet");
 	    info("neutrinet");
 	}
 	}
-	elsif($message->{body} =~ /\bf(ede|fdn|rance|édé)/i) {
+	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.";	
 	    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.";	
 	}	
 	}	
 	
 	
@@ -302,119 +311,120 @@ sub said {
     elsif ($message->{body} =~ /^\+adh/) {
     elsif ($message->{body} =~ /^\+adh/) {
         shift @_;
         shift @_;
 
 
-    	# Apinnet
-    	if($message->{body} =~ /\b(ap[in]|Poitou|Charente|Rochelle|(Deux[- ])?S[èe]vres?|Vienne|Angoul[eêè]me|Niort|Poitiers)/i) {
-#    	    return "Aucune info pour apinnet";
+	# Apinnet
+	if($message->{body} =~ /$regex{"apinnet"}/i) {
 	    adh("apinnet");
 	    adh("apinnet");
-    	}	
-    	# Aquilenet
-    	elsif($message->{body} =~ /\b(aq(ui|n)|Bord(o|e?au)|Landes|Gironde)/i) {
-    	    adh ("aquilenet");
-    	}
-    	# ARN
-    	elsif($message->{body} =~ /\b(a(lsace|rn)|Stras|Colma)/i) {
-    	    adh("arn");
-    	}
-    	# Auvernet
-    	elsif($message->{body} =~ /\b(Auver|Puy[- ](de[- ])D[oô]me|avn)/i) {
-    	    adh ("auvernet");
-    	}
-    	# Cafai
-    	elsif($message->{body} =~ /\b(cafai|champagne|ardenn?e)/i) {
-    	    adh("cafai");
-    	}
-    	# faimaison
-    	elsif($message->{body} =~ /\b(fma|fail?m|Nantes|Loire[- ]Atlantique)/i) {
-    	    adh ("faimaison");
-    	}
-    	# FDN
-    	elsif($message->{body} =~ /\bf(rench|dn|rance)/) {
-    	    adh("fdn");
-    	}
-    	# franciliens.net
-    	elsif($message->{body} =~ /\b(f(ranc|cn)|idf|Paris)/i) {
-    	    adh ("franciliens");
-    	}
-    	# grifon
-    	elsif($message->{body} =~ /\b(grif|rennes|[îi]l?le[- ](et[- ])?vilaine)/i) {
-    	    adh("grifon");
-    	}
-    	# ilico
-    	elsif($message->{body} =~ /\b(ilc|ill?[iy][ck])|(Corr?[éêèe][sz])/i) {
-    	    adh("ilico");
-    	}
-    	# illyse
-    	elsif($message->{body} =~ /\b(ill?y|ill?i[sz]|lyon|rh[ôo]ne|loire|((st|saint)[- ]etienn?e))/i) {
-    	    adh ("illyse");
-    	}
-    	# iloth
-    	elsif($message->{body} =~ /\b(ilo|mont?pel|h[ée]rault)/i) {
-    	    adh("iloth");
-    	}
-    	# ldn
-    	elsif($message->{body} =~ /\b(l(or|dn)|Nancy|Metz|Moselle|Meuse|Meurthe|Vosges)/i) {
-    	    adh("ldn");
-    	}
-    	# ndn
-    	elsif($message->{body} =~ /\b(n(ice|dn)|Antibes|Cannes|Valbonne|Alpes[- ]Maritimes)/i) {
-#    	    return "Pas d'info pour Nice data network";
+#	    return "site : http://www.apinnet.fr/ salon : irc://irc.geeknode.org/#Apinnet dans le  Poitou-Charentes";
+	}	
+	# Aquilenet
+	elsif($message->{body} =~ /$regex{"aquilenet"}/i) {
+	    adh("aquilenet");
+	}
+ 	# ARN
+	elsif($message->{body} =~ /$regex{"arn"}/i) {
+	    adh("arn");
+	}
+	# Auvernet
+	elsif($message->{body} =~ /$regex{"auvernet"}/i) {
+	    adh("auvernet");
+	}
+	# Cafai
+	elsif($message->{body} =~ /$regex{"cafai"}/i) {
+	    adh("cafai");
+	}
+	# faimaison
+	elsif($message->{body} =~ /$regex{"faimaison"}/i) {
+	    adh("faimaison");
+	}
+	# FDN
+	elsif($message->{body} =~ /$regex{"fdn"}/i) {
+	    adh("fdn");
+	}
+	# franciliens.net
+	elsif($message->{body} =~ /$regex{"franciliens"}/i) {
+	    adh("franciliens");
+	}
+	# grifon
+	elsif($message->{body} =~ /$regex{"grifon"}/i) {
+	    adh("grifon");
+	}
+	# ilico
+	elsif($message->{body} =~ /$regex{"ilico"}/i) {
+	    adh("ilico");
+	}
+	# illyse
+	elsif($message->{body} =~ /$regex{"illyse"}/i) {
+	    adh("illyse");
+	}
+	# iloth
+	elsif($message->{body} =~ /$regex{"iloth"}/i) {
+	    adh("iloth");
+	}
+	# ldn
+	elsif($message->{body} =~ /$regex{"ldn"}/i) {
+	    adh("ldn");
+	}
+	# ndn
+	elsif($message->{body} =~ /$regex{"ndn"}/i) {
+#    	    return "Pas d'adh pour Nice data network";
 	    adh("ndn");
 	    adh("ndn");
-    	}
-    	# netopi
-    	elsif($message->{body} =~ /\b(netopi|Seine[- ](et[- ])?Marne)/i) {
-#    	    return "Netopi = site : http://netopi.fr ; pas de salon ; en Seine et Marne";
+	}
+	# netopi
+	elsif($message->{body} =~ /$regex{"netopi"}/i) {
+	    #return "Netopi = site : http://netopi.fr ; pas de salon ; en Seine et Marne";
 	    adh("netopi");
 	    adh("netopi");
-    	}
-    	# pclight
-    	elsif($message->{body} =~ /\b(yonne|beon|cheny|pc[- ]?l)/i) {
-    	    adh("pclight");
-    	}
-    	# rézine
-    	elsif($message->{body} =~ /\b(r[eé]z|Isère|Grenoble)/i) {
-    	    adh("rezine");
-    	}
-    	# rhizome
-    	elsif($message->{body} =~ /\b(rh?[iy][sz]om|Oise|Compi[eéêè]gne)/i) {
-    	    adh("rhizome");
-    	}
-    	# sames
-    	elsif($message->{body} =~ /\bsam|(Pyrénées[- ]Atlantiques)/i) {
-    	    adh("sames");
-    	}
-    	# sdn
-    	elsif($message->{body} =~ /\b(s(all|dn)|Savoie|Haute[- ]Savoie)/i) {
-#    	    return "aucune info pour SDN";
-	    adh ("sdn");
-    	}
-    	# teleragno
-    	elsif($message->{body} =~ /\b(mars|telerag|telegrano)/i) {
-    	    adh ("teleragno");
-    	}
-    	# tetaneutral
-    	elsif($message->{body} =~ /\b(t(eta|tn|nn)|Toulouse|Comminges|(Haute[- ]Garon?ne))/i) {
-    	    adh ("tetaneutral");
-    	}
-    	# ail-network
-    	elsif($message->{body} =~ /\bail/i) {
-	    adh ("ail-network");
-    	    #return "aucune info pour Aïl-network";
-    	}
-    	# chaul'hertz
-    	elsif($message->{body} =~ /\b(c(haul|hz)|hertz|tarn|autan|hh)/i) {
-	    adh ("chaul-hertz");
-#    	    return "aucune info pour Chaul-Hertz";	
-    	}
-    	# igwan
-    	elsif($message->{body} =~ /\b(ig[wn]|sbg|saint[- ]barth)/i) {
-    	    adh ("igwan");	
-    	}
-    	# neutrinet
-    	elsif($message->{body} =~ /\b(neutri|n[tre]n|belgique)/i) {
-    	    adh("neutrinet");
-    	}
-    	elsif($message->{body} =~ m{\bf(ede|fdn|rance|édé)}i) {
-    	    adh_abo_ffdn;	
-    	}	
+	}
+	# pclight
+	elsif($message->{body} =~ /$regex{"pclight"}/i) {
+	    adh("pclight");
+	}
+	# rézine
+	elsif($message->{body} =~ /$regex{"rezine"}/i) {
+	    adh("rezine");
+	}
+	# rhizome
+	elsif($message->{body} =~ /$regex{"rhizome"}/i) {
+	    adh("rhizome");
+	}
+	# sames
+	elsif($message->{body} =~ /$regex{"sames"}/i) {
+	    adh("sames");
+	}
+	# sdn
+	elsif($message->{body} =~ /$regex{"sdn"}/i) {
+#	    return"Sallanches Data Network = siteweb : http://sdnet.adh/ ; pas de salon ; à Sallanches (73)";
+	    adh("sdn");
+	}
+	# teleragno
+	elsif($message->{body} =~ /$regex{"teleragno"}/i) {
+	    adh("teleragno");
+	}
+	# tetaneutral
+	elsif($message->{body} =~ /$regex{"tetaneutral"}/i) {
+	    adh("tetaneutral");
+	}
+	# ail-network
+	elsif($message->{body} =~ /$regex{"ail"}/i) {
+	    adh("ail-network");
+#	    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)";	
+	    adh("chaul-hertz");
+	}
+	# igwan
+	elsif($message->{body} =~ /$regex{"igwan"}/i) {
+	    adh("igwan");	
+	}
+	# neutrinet
+	elsif($message->{body} =~ /$regex{"neutrinet"}/i) {
+	    adh("neutrinet");
+	}
+	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.";	
+	}	
+
 	
 	
     	# Si le FAI n'est pas valide, on l'indique
     	# Si le FAI n'est pas valide, on l'indique
     	else {
     	else {
@@ -430,7 +440,7 @@ sub said {
     }
     }
     # les sources du bot
     # les sources du bot
     elsif ($message->{body} =~ /^\+source/) {
     elsif ($message->{body} =~ /^\+source/) {
-	lecture_fichier ("source");
+	lecture_fichier("source");
     }
     }
     # les infos par rapport aux réunions de suivies
     # les infos par rapport aux réunions de suivies
     elsif ($message->{body} =~ /^\+suivi/) {
     elsif ($message->{body} =~ /^\+suivi/) {