Browse Source

Bugfix / tailgrep, lastlog, changelog -- asr

Gaétan RYCKEBOER 10 years ago
parent
commit
8bafde222a
2 changed files with 35 additions and 15 deletions
  1. 10 1
      bin/tailgrep
  2. 25 14
      bin/tweet.pl

+ 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

+ 25 - 14
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;
@@ -43,13 +42,17 @@ Irssi::settings_add_str($IRSSI{name},          # default fifo_remote_file
 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) = @_;
@@ -119,6 +122,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') {
@@ -158,7 +162,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> );
@@ -169,14 +174,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." );
-					open ( CHANGL, "tail $changefile |" ) or $server->command ( "msg $target $nick: fichier vide" );
+					$server->command ( "msg $target $nick: changelog en pv." );
+					open ( CHANGL, "tail $logfile |" ) 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;
@@ -193,31 +200,35 @@ my ($target, $text) = $data =~ /^(\S*)\s:(.*)/;
 				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, "/home/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) {