Parcourir la source

Merge branch 'master' of ssh://code.ffdn.org:55555/asr/nagios-irssi

Gaétan RYCKEBOER il y a 10 ans
Parent
commit
6fce11080a
4 fichiers modifiés avec 65 ajouts et 17 suppressions
  1. 2 0
      CHANGELOG
  2. 10 1
      bin/tailgrep
  3. 21 1
      bin/tc-14.pl
  4. 32 15
      bin/tweet.pl

+ 2 - 0
CHANGELOG

@@ -20,3 +20,5 @@ asr - Add ACK command to acknowledge alerts. _Will_break_configuration_file_
       to livestatus fifo today renames nagios_live)
 asr - Change HOST ALIAS to HOST NAME for nagios services. _will_break_previous_nagios_configuration_file_
 
+v0.4.2 - 10-10-2014
+asr - bugfix on received alerts displaying, code rewriting

+ 10 - 1
bin/tailgrep

@@ -1,5 +1,14 @@
 #!/bin/sh
+BOT="TC-14"
 filename=$1
 shift
+pattern=$1
+shift
+num=20
+if [ "$1" = "-n" ] ; then
+	shift
+	num=$1
+	shift
+fi
 #echo "parametres : $@"
-[ "$1" != "" ] && cat $filename | grep $* | tail
+[ "$1" != "" ] && cat $filename | grep $* | egrep -v "^[^ ]* <[^>]*> $pattern" | egrep -v "^[^ ]* <.$BOT>" | tail -n $num

+ 21 - 1
bin/tc-14.pl

@@ -85,8 +85,19 @@ sub event_join {
 	foreach $father (@dad ) {
 		if ($nick =~ /^$father$/i)  {
 #               $server->command ( "mode $target +v $nick" );
-			$server->command ( "MSG $target Toi, je te connais, je t'ai deja vu quelque part..." );
+			
+		        my @messages=(
+			  "MSG $target Toi, $nick, je te connais, je t'ai deja vu quelque part...",
+			  "MSG $target Toi, $nick, je te connais, je t'ai deja vu quelque part...",
+			  "MSG $target Bonjour, Maître $nick",
+			  "action $target s'incline.",
+			  "action $target . o O ( Roh, v'la l'aut'guignol... )"
+			);
+			my $message=$messages[rand @messages];
 		}
+		print (">> $message -");
+		$server->command ( $message );
+		undef @messages;
 	}
 #	if ($nick =~ /^BirthdayBot$/i) {
 #		$server->command ( "mode $target +o $nick" );
@@ -172,6 +183,15 @@ my ($target, $text) = $data =~ /^(\S*)\s:(.*)/;
 			   }
 			send_server("msg", $target, $nick, "$password");
 		}
+		elsif ( $text =~ /n *a *(i|!) *n/i ) {
+			if ( ! ($target =~ /spip/ ) ) {
+				$server->command ( "msg $target C'est trois petits nains qui vont à la mine." );
+				$server->command ( "msg $target Le troisième prend la pelle." );
+				$server->command ( "msg $target Le second prend la pioche." );
+				$server->command ( "msg $target Et le premier ? Qu'est-ce qu'il prend ?" );
+				#$last=$nick;
+			}
+		}
 		elsif ( $text =~ /..o...a.s/i ) {
 			if ( ! ($target =~ /spip/ ) ) {
 				if (int(rand(10)) > 6) {

+ 32 - 15
bin/tweet.pl

@@ -27,7 +27,6 @@ close CLOCKPO;
 
 srand (time ^ $$ ^ unpack "%L*", `ps axww | gzip -f`);
 
-my $changefile="/home/tc-14/var/changelog";
 my $last_tweet="";
 my $debug=0;
 my $bingo=0;
@@ -39,15 +38,21 @@ my $timeout=30;
 my $warndate=time()-$timeout;
 
 Irssi::settings_add_str($IRSSI{name},          # default fifo_remote_file
-    'tc_chans', '#flood #starwars');     #
+    'tc_admin_chans', '#flood #starwars');     #
 Irssi::settings_add_str($IRSSI{name},          # default fifo_remote_file
     'tc_admins', 'asr coin plop');     #
 Irssi::settings_add_str($IRSSI{name},          # default fifo_remote_file
-    'tc_changefile', '/home/tc-14/var/last.log');     #
+    'tc_logfile', '/home/tc-14/var/last.log');     #
+Irssi::settings_add_str($IRSSI{name},          # default fifo_remote_file
+    'tc_changefile', '/home/tc-14/var/changelog');     #
+Irssi::settings_add_str($IRSSI{name},          # default fifo_remote_file
+    'tc_tailgrep', '/home/tc-14/bin/tailgrep');     #
 
 my @chan=split m/ /, Irssi::settings_get_str("tc_chans");
 my @admin_chan=split m/ /, Irssi::settings_get_str("tc_admins");
-my $change=Irssi::settings_get_str("tc_changefile");
+my $logfile=Irssi::settings_get_str("tc_logfile");
+my $changefile=Irssi::settings_get_str("tc_changefile");
+my $tailgrep=Irssi::settings_get_str("tc_tailgrep");
 
 sub in_array {
 	my ($arr,$search_for) = @_;
@@ -77,6 +82,9 @@ my ($target, $text) = $data =~ /^(\S*)\s:(.*)/;
 
 	#print ( "C:$target X:$text A:$admin D:$warndate L:$last W:$warn N:$nick D:$data" );
 
+	@admin_chan=split m/ /, Irssi::settings_get_str("tc_admins");
+	@chan=split m/ /, Irssi::settings_get_str("tc_chans");
+
 	sub send_server($$$$) {
 		my ($action,$cible,$pseudo,$msg)=@_;
 		$server->command ( "msg $target SWarn C:$cible X:$action A:$admin D:$warndate L:$last W:$warn N:$pseudo T:$msg" ) unless ($debug == 0);
@@ -117,6 +125,7 @@ my ($target, $text) = $data =~ /^(\S*)\s:(.*)/;
 	}
 
 		if ( $text =~ /^!tweet\s*(.*)/) {
+			$changefile=Irssi::settings_get_str("tc_changefile");
 			if (in_array(@admin_chan, $target)) { return ; }
 			if ($1 eq '') { $server->command("msg $target $nick: Usage: !tweet <<message>>"); } #$server->command ( "msg $target $nick: !tweet <<mesage>>" ); }
 			elsif ($1 eq 'changelog') {
@@ -156,7 +165,8 @@ my ($target, $text) = $data =~ /^(\S*)\s:(.*)/;
 		elsif ( $text =~ /^!changelog( .+)?/ ) {
 			if (in_array(@admin_chan,$target))
 			{ return; }
-			if ($1 eq '') { $server->command ( "msg $target $nick: !changelog (list|add) [<serveur> [<liste d'actions>]]" ); 
+			$changefile=Irssi::settings_get_str("tc_changefile");
+			if ($1 eq '') { $server->command ( "msg $target $nick: !changelog (list|add|last) [-n nb lignes (pour list)] [<serveur> [<liste d'actions>]]" ); 
 			} elsif ($1 =~ /^ last( .+)?/) {
 				open ( CHANGL, "tail -n1 $changefile |" ) or $server->command ( "msg $target $nick: fichier vide" );
 				chomp( @temp = <CHANGL> );
@@ -167,14 +177,16 @@ my ($target, $text) = $data =~ /^(\S*)\s:(.*)/;
 			} elsif ($1 =~ /^ list( .+)?/) {
 				undef @temp;
 				if ($1 eq '') {
-					$server->command ( "msg $target $nick: changelog total (20 lignes) en pv." );
+					$server->command ( "msg $target $nick: changelog en pv." );
 					open ( CHANGL, "tail $changefile |" ) or $server->command ( "msg $target $nick: fichier vide" );
 				} else {
 					my $pattern = $1;
 					$pattern =~ s/^ //;
 					$pattern =~ s/['"\$]/_/g;
-					$server->command ( "msg $target $nick: changelog pour '$pattern' (20 lignes) en pv" );
-					open ( CHANGL, "/home/tc-14/bin/tailgrep $changefile '$pattern' |" ) or $server->command ( "msg $target $nick: erreur de pattern ou fichier vide" );
+					$server->command ( "msg $target $nick: changelog pour '$pattern' en pv" );
+					$tailgrep=Irssi::settings_get_str("tc_tailgrep");
+					Irssi::print(">> changelog list $pattern");
+					open ( CHANGL, "$tailgrep $changefile !changelog $pattern |" ) or $server->command ( "msg $target $nick: erreur de pattern ou fichier vide" );
 				}
 				chomp( @temp = <CHANGL> );
 				close CHANGL;
@@ -188,34 +200,39 @@ my ($target, $text) = $data =~ /^(\S*)\s:(.*)/;
 
 				close CHANGL or $server->command ( "msg $target $nick: erreur de fichier... (C)" );
 				$clocky = $clockpo[rand @clockpo];
-				send_server("msg", $target, $nick, $clocky) unless ($nick =~ /edgard/i);
+				$server->command ( "msg $target $nick: $clocky" );
+				#send_server("msg", $target, $nick, $clocky) unless ($nick =~ /edgard/i);
 				
 			} else {
-				$server->command ( "msg $target $nick: !changelog (list|add|last) [<serveur> [<liste d'actions>]]" );
+				$server->command ( "msg $target $nick: !changelog (list|add|last) [nb lignes (pour list)] [<serveur> [<liste d'actions>]]" );
 			}
 		}
 		elsif ( $text =~ /^!lastlog( .+)?/ ) {
 			if (in_array(@admin_chan,$target))
 			{ return; }
-			if ($1 eq '') { $server->command ( "msg $target $nick: !lastlog list [<liste d'actions>]" ); 
+			if ($1 eq '') { $server->command ( "msg $target $nick: !lastlog list [-n NBLignes] [<liste d'actions>]" ); 
 			} elsif ($1 =~ /^ list( .+)?/) {
 				undef @temp;
+				$logfile=Irssi::settings_get_str("tc_logfile");
+				Irssi::print(">> $logfile - $pattern");
 				if ($1 eq '') {
-					$server->command ( "msg $target $nick: lastlog total (20 lignes) en pv." );
+					$server->command ( "msg $target $nick: lastlog global en pv." );
 					open ( CHANGL, "tail $logfile |" ) or $server->command ( "msg $nick fichier vide" );
 				} else {
 					my $pattern = $1;
+					$tailgrep=Irssi::settings_get_str("tc_tailgrep");
 					$pattern =~ s/^ //;
 					$pattern =~ s/['"\$]/_/g;
-					$server->command ( "msg $target $nick: lastlog pour '$pattern' (20 lignes) en pv." );
-					open ( CHANGL, "/homet/tc-14/bin/tailgrep $logfile '$pattern' |" ) or $server->command ( "msg $target $nick: erreur de pattern ou fichier vide" );
+					$server->command ( "msg $target $nick: lastlog pour '$pattern' en pv." );
+					open ( CHANGL, "$tailgrep $logfile !lastlog '$pattern' |" ) or $server->command ( "msg $target $nick: erreur de pattern ou fichier vide" );
 				}
 				chomp( @temp = <CHANGL> );
 				close CHANGL;
 				foreach $line (@temp) {
 					$server->command ( "msg $nick $line" );
+					Irssi::print("-- $line");
 				}
-			} else { $server->command ( "msg $target $nick: !lastlog list [<liste d'actions>]" ); 
+			} else { $server->command ( "msg $target $nick: !lastlog list [-n NBLignes] [<liste d'actions>]" ); 
 			}
 		}
 	if ($debug == 1) {