Browse Source

on test l'existence de fichier avant d'essayer d'en prendre le contenu

Vigdis (DanJ) 10 years ago
parent
commit
d900f053a1
1 changed files with 93 additions and 38 deletions
  1. 93 38
      unefede.pl

+ 93 - 38
unefede.pl

@@ -25,63 +25,100 @@ my $wrk_dir = "wrk-dir";
 sub info {
     my $fai = shift @_;
     my $filename = "/home/daga/bot-irc/". $wrk_dir."/". $fai.".info";
-    my $fh;
-    open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
-    while (my $line = <$fh>)
+    if (-e $filename)
     {
-	return $line;
+	my $fh;
+	open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
+	while (my $line = <$fh>)
+	{
+	    return $line;
+	}
+	close $fh;
+    }
+    else
+    {
+	return "pas d'information pour ". $fai ."\n";
     }
-    close $fh;
 }
 
 # Lis le fichier contenant les nombres adh/abo d'un FAI
 sub adh {
     my $fai = shift @_;
     my $filename = "/home/daga/bot-irc/". $wrk_dir."/". $fai.".adh";
-    my $fh;
-    open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
-    while (my $line = <$fh>)
+    if (-e $filename)
     {
-	return $line;
+	my $fh;
+	open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
+	while (my $line = <$fh>)
+	{
+	    return $line;
+	}
+	close $fh;
+    }
+    else
+    {
+	return "pas d'information pour ". $fai ."\n";
     }
-    close $fh;
 }
 
 # lis le fichier avec les infos pour la réunion de suivi
 sub suivi {
     my $filename = "/home/daga/bot-irc/". $wrk_dir."/suivi";
-    my $fh;
-    open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
-    while (my $line = <$fh>)
+    if (-e $filename)
     {
-	return $line;
+	my $fh;
+	open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
+	while (my $line = <$fh>)
+	{
+	    return $line;
+	}
+	close $fh;
     }
-    close $fh;
+    else
+    {
+	return "pas d'information \n";
+    }
+    
 }
 
 # lis le fichier avec les infos pour la réunion de suivi
 sub vote {
     my $filename = "/home/daga/bot-irc/". $wrk_dir."/vote";
-    my $fh;
-    open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
-    while (my $line = <$fh>)
+    if (-e $filename)
     {
-	return $line;
+	my $fh;
+	open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
+	while (my $line = <$fh>)
+	{
+	    return $line;
+	}
+	close $fh;
+    }
+    else
+    {
+	return "pas d'information \n";
     }
-    close $fh;
 }
 
 
 
 sub adh_abo_ffdn {
     my $filename = "/home/daga/bot-irc/". $wrk_dir."/ffdn.adh";
-    my $fh;
-    open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
-    while (my $line = <$fh>)
+    if (-e $filename)
+    {
+	my $fh;
+	open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
+	while (my $line = <$fh>)
     {
 	return $line;
     }
-    close $fh;
+	close $fh;
+    }
+    else
+    {
+	return "pas d'information\n";
+    }
+    
 }
 
 
@@ -149,12 +186,13 @@ sub said {
 	}
 	# ndn
 	elsif($message->{body} =~ /\b(n(ice|dn)|Antibes|Cannes|Valbonne|Alpes[- ]Maritimes)/i) {
-    	    return "Pas d'info pour Nice data network";
-	    # info("ndn");
+#    	    return "Pas d'info pour Nice data network";
+	    info("ndn");
 	}
 	# netopi
 	elsif($message->{body} =~ /\b(netopi|Seine[- ](et[- ])?Marne)/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");
 	}
 	# pclight
 	elsif($message->{body} =~ /\b(yonne|beon|cheny|pc[- ]?l)/i) {
@@ -174,7 +212,8 @@ sub said {
 	}
 	# sdn
 	elsif($message->{body} =~ /\b(s(all|dn)|Savoie|Haute[- ]Savoie)/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");
 	}
 	# teleragno
 	elsif($message->{body} =~ /\b(mars|telerag|telegrano)/i) {
@@ -186,11 +225,13 @@ sub said {
 	}
 	# ail-network
 	elsif($message->{body} =~ /\bail/i) {
-	    return "Aïl-network = siteweb : http://ail-network.org/ ; pas de salon ; Tarn Sud-Est (Pays d'Autan)";
+	    info ("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} =~ /\b(c(haul|hz)|hertz|tarn|autan)/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");
 	}
 	# igwan
 	elsif($message->{body} =~ /\b(ig[wn]|sbg|saint[- ]barth)/i) {
@@ -269,12 +310,13 @@ sub said {
     	}
     	# ndn
     	elsif($message->{body} =~ /\b(n(ice|dn)|Antibes|Cannes|Valbonne|Alpes[- ]Maritimes)/i) {
-    	    return "Pas d'info pour Nice data network";
-	    # adh("ndn");
+#    	    return "Pas d'info pour Nice data network";
+	    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";
+#    	    return "Netopi = site : http://netopi.fr ; pas de salon ; en Seine et Marne";
+	    adh("netopi");
     	}
     	# pclight
     	elsif($message->{body} =~ /\b(yonne|beon|cheny|pc[- ]?l)/i) {
@@ -294,7 +336,8 @@ sub said {
     	}
     	# sdn
     	elsif($message->{body} =~ /\b(s(all|dn)|Savoie|Haute[- ]Savoie)/i) {
-    	    return "aucune info pour SDN";
+#    	    return "aucune info pour SDN";
+	    adh ("sdn");
     	}
     	# teleragno
     	elsif($message->{body} =~ /\b(mars|telerag|telegrano)/i) {
@@ -306,11 +349,13 @@ sub said {
     	}
     	# ail-network
     	elsif($message->{body} =~ /\bail/i) {
-    	    return "aucune info pour Aïl-network";
+	    adh ("ail-network");
+    	    #return "aucune info pour Aïl-network";
     	}
     	# chaul'hertz
     	elsif($message->{body} =~ /\b(c(haul|hz)|hertz|tarn|autan)/i) {
-    	    return "aucune info pour Chaul-Hertz";	
+	    adh ("chaul-hertz");
+#    	    return "aucune info pour Chaul-Hertz";	
     	}
     	# igwan
     	elsif($message->{body} =~ /\b(ig[wn]|sbg|saint[- ]barth)/i) {
@@ -333,7 +378,8 @@ sub said {
 
     # si on veut de l'aide
     elsif ($message->{body} =~ /^\+help/) {
-	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";
+	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/) {
@@ -348,7 +394,16 @@ sub said {
 	vote;
     }
     elsif ($message->{body} =~ /datafoin/) {
-	return "il ne faut pas me donner à manger après minuit /o\\";
+	my $de = int rand(3);
+	if (de == 1) {
+	    return "il ne faut pas me donner à manger après minuit /o\\";
+	}
+	elsif(de==2){
+	    return "omnomnom";
+	}
+	elsif(de==3){
+	    return "mais je vais grossir /o\\";
+	}
     }
 }