packages: irssi-scripts/irssi-scripts.spec, irssi-scripts/forwardfix.pl (NE...

arekm arekm at pld-linux.org
Sat Jul 25 23:06:35 CEST 2009


Author: arekm                        Date: Sat Jul 25 21:06:35 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- maintain forwardfix inside of pld cvs

---- Files affected:
packages/irssi-scripts:
   irssi-scripts.spec (1.48 -> 1.49) , forwardfix.pl (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/irssi-scripts/irssi-scripts.spec
diff -u packages/irssi-scripts/irssi-scripts.spec:1.48 packages/irssi-scripts/irssi-scripts.spec:1.49
--- packages/irssi-scripts/irssi-scripts.spec:1.48	Sat Jul 25 23:05:03 2009
+++ packages/irssi-scripts/irssi-scripts.spec	Sat Jul 25 23:06:30 2009
@@ -29,7 +29,7 @@
 # Source8-md5:	e50707d22a9338df6fb9b39dcdefb7e2
 Source9:	http://www.irssi.org/scripts/scripts/tab_stop.pl
 # Source9-md5:	ffa8d8381c41521365cacf9b1bb13951
-Source10:	http://netx.waw.pl/~agaran/forwardfix.pl
+Source10:	forwardfix.pl
 # Source10-md5:	8bf85f7368933a4e0cb4f875bac28733
 Source11:	http://entermedia.pl/~shadzik/vtk/vtk.pl
 # Source11-md5:	9e34c85f1084afaa71590bc544dd4e76
@@ -236,7 +236,6 @@
 Summary(pl.UTF-8):	Skrypt forwardfix
 Version:	20060902
 Group:		Applications/Communications
-URL:		http://www.netx.waw.pl/~agaran/
 Requires:	irssi
 
 %description -n irssi-script-forwardfix
@@ -620,6 +619,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.49  2009/07/25 21:06:30  arekm
+- maintain forwardfix inside of pld cvs
+
 Revision 1.48  2009/07/25 21:05:03  glen
 - add gtrans.pl
 

================================================================
Index: packages/irssi-scripts/forwardfix.pl
diff -u /dev/null packages/irssi-scripts/forwardfix.pl:1.1
--- /dev/null	Sat Jul 25 23:06:36 2009
+++ packages/irssi-scripts/forwardfix.pl	Sat Jul 25 23:06:30 2009
@@ -0,0 +1,181 @@
+# This script is possibly buggy, but i haven't got much time
+# to test it. Use at your own risk.
+# a g a r a n   a t   p l d   d a s h   l i n u x   d o t   o r g
+
+
+use strict;
+use Irssi;
+use vars qw($VERSION %IRSSI);
+
+$VERSION = '0.01';
+
+%IRSSI = (
+		authors => 'Maciej \'agaran\' Pijanka',
+		contact => 'agaran at pld-linux.org',
+		name => 'forwardfix',
+		description => 'hides crossnetwork channel joining',
+		license => 'GPL',
+		url => 'http://netx.waw.pl/~agaran/forwardfix.pl'
+);
+
+#### Interface ###
+#
+#
+#
+
+# /upgrade_ffix
+# dont do it, may harm your childrens, blow your drives and so on
+
+# VARIABLES
+# =========
+
+Irssi::settings_add_str("forward", "forward_chanset","#pld:abw,#pldhelp:abw,#pldlivecd:abw");
+Irssi::settings_add_str("forward", "forward_netmap","IRCnet:IN,FreeNode:FN,PLDNet:PN");
+Irssi::settings_add_bool("forward","forward_dash",1);
+Irssi::settings_add_int("forward", "forward_transmod",0);
+Irssi::settings_add_bool("forward","forward_addnet",1);
+Irssi::settings_add_str("forward", "forward_sep",'$');
+
+Irssi::print("Its, beta, dont rely on it \nif something like forwardfix-debug: [something]\nhappens, please let me know");
+Irssi::print("-- agaran (20060902-2050) ");
+
+our %crude_hack = ();
+
+Irssi::signal_add "event privmsg", sub {
+	my ($server, $data, $nick, $address) = @_;
+	my ($target, $text) = split(/ :/, $data, 2);
+	my ($fwd,$p,$q,$fn);
+	my ($chanset,$netmap,$fn) = ({},{},'');
+	my $transmod = Irssi::settings_get_int("forward_transmod");
+	my $addnet = Irssi::settings_get_bool("forward_addnet");
+	my $sep = Irssi::settings_get_str("forward_sep");
+	my $dash = Irssi::settings_get_bool("forward_dash");
+	my $targetl = lc $target;
+
+	map { split /:/,$_; $chanset->{lc $_[0]} = lc $_[1]; } split /[ ,]+/,Irssi::settings_get_str("forward_chanset");
+	map { split /:/,$_; $netmap->{lc $_[0]} = $_[1]; } split /[ ,]+/,Irssi::settings_get_str("forward_netmap");
+
+	my $now = time(); # yep compute foreach net, just to scope var
+	foreach my $n (keys %crude_hack) {
+		foreach my $m (keys %{$crude_hack{$n}}) {
+			delete $crude_hack{$n}{$m} if($crude_hack{$n}{$m} + 30 < $now);
+		}
+	}
+
+	if (defined $chanset->{$targetl} && (lc $nick eq $chanset->{$targetl} || ($dash && lc $nick eq $chanset->{$targetl}.'-' ))) {
+		if($text =~ /^\(?([a-zA-Z\-_0-9\`\^|]+)?\@([A-Z]+)\) (.*)$/) { # maska maska maska
+			($nick,$fwd,$text) = ($1,$2,$3);
+			$text .= " [$fwd]" if($addnet);
+
+			if($transmod == 2) { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				Irssi::signal_emit("event privmsg", $server, "$target :$text", $nick.$sep.$fwd, $nick.'@'.$fwd);
+			} else {
+				Irssi::signal_stop();
+				Irssi::signal_emit("event privmsg", $server, "$target :$text", $nick, $nick.'@'.$fwd);
+			}
+
+		} elsif ($text =~ /^\* \(?([a-zA-Z\-_0-9\`\^\|]+)?\@([A-Z]+)\) (.*)$/) { 
+			($nick,$fwd,$text) = ($1,$2,$3);
+			$text .= " [$fwd]" if($addnet);
+			Irssi::signal_stop();
+			Irssi::signal_emit("event privmsg", $server, "$target :ACTION $text", $nick, $nick.'@'.$fwd);
+			
+		} elsif ($text =~ /^\*\*\* Join ([a-zA-Z\-_0-9\`\]\[\^\|]+) \(([a-z\/\=+\~^A-Z\[\-_0-9\^:\@\.]+)\) on (.*)$/ ) {
+			($nick,$text,$fwd) = ($1,$2,$3);
+
+			$fn = $netmap->{lc $fwd} if(defined $netmap->{lc $fwd});
+
+			if(($transmod == 1 || $transmod == 2) && $fn ne '') { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				delete $crude_hack{$fn}{$nick} if(defined $crude_hack{$fn}{$nick});
+				Irssi::signal_emit("event join", $server, ":$target", $nick.$sep.$fn, $text);
+			}
+			
+		} elsif ($text =~ /^\*\*\* Part ([a-zA-Z\-_0-9\`\]\[\^\|]+) \(([a-z\/\=+\~^A-Z\[\-_0-9\^:\@\.]+)\) on (.*)$/ ) {
+			($nick,$text,$fwd) = ($1,$2,$3);
+			
+			$fn = $netmap->{lc $fwd} if(defined $netmap->{lc $fwd});
+			
+			if(($transmod == 1 || $transmod == 2) && $fn ne '') { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				Irssi::signal_emit("event part", $server, "$target :", $nick.$sep.$fn, $text);
+			}
+
+		} elsif ($text =~ /^\*\*\* \[signoff\/#[a-zA-Z0-9\|]+\] ([a-zA-Z\/\=\-_0-9\`\]\^|]+) \((.*)\) on (.*)$/ ) {
+
+			($nick,$text,$fwd) = ($1,$2,$3);
+
+			$fn = $netmap->{lc $fwd} if(defined $netmap->{lc $fwd});
+			
+			if(($transmod == 1 || $transmod == 2) && $fn ne '') { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				unless(defined $crude_hack{$fn}{$nick}) {
+					$crude_hack{$fn}{$nick} = time();
+					Irssi::signal_emit("event quit", $server, ":$text", $nick.$sep.$fn, $nick.$sep.$fn.'@'.$fwd);
+				}
+			}
+			
+		} elsif ($text =~ /^\*\*\* \[mode\/#[a-zA-Z0-9]+\(([\+\-vo]+) ([a-zA-Z\-\+_0-9\`\^\[\]\|\ ]+)\)\] by ([a-zA-Z\.\*\-_0-9\`\^\|]+) on (.*)$/ ) {
+			my ($ml,$or,$nl);
+			($ml,$nl,$or,$fwd) = ($1,$2,$3,$4);
+			
+			$fn = $netmap->{lc $fwd} if(defined $netmap->{lc $fwd});
+
+			$nl = join ' ',map { sprintf "%s%s%s", $_,$sep,$fn; } split ' ',$nl;
+		
+			if(($transmod == 1 || $transmod == 2) && $fn ne '') { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				Irssi::signal_emit("event mode",$server, "$target $ml $nl",$or.$sep.$fn,$or.'@'.$fwd);
+			}
+			# mody dalsze
+		} elsif ($text =~ /^\*\*\* \[mode\/#[a-zA-Z0-9]+\(([\+\-ben]+) ([a-zA-Z\-\!\?\*\@\.\+_0-9|\^\`\ ]+)\)\] by ([a-zA-Z\-_0-9\`\^|]+) on (.*)$/ ) {
+			my ($ml,$or,$nl);
+			($ml,$nl,$or,$fwd) = ($1,$2,$3,$4);
+			
+			$fn = $netmap->{lc $fwd} if(defined $netmap->{lc $fwd});
+		
+			if(($transmod == 1 || $transmod == 2) && $fn ne '') { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				Irssi::signal_emit("event mode",$server, "$target $ml $nl",$or.$sep.$fn,$or.'@'.$fwd);
+			}
+		} elsif ($text =~ /^\*\*\*  Nick Change: ([a-zA-Z\-_0-9\`\]\^|]+) is now ([a-zA-Z\-_0-9\`\]\^|]+) on (.*)$/ ) {
+			my ($n1,$n2);
+			($n1,$n2,$fwd) = ($1,$2,$3);
+			
+			$fn = $netmap->{lc $fwd} if(defined $netmap->{lc $fwd});
+			
+			if(($transmod == 1 || $transmod == 2) && $fn ne '') { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				Irssi::signal_emit("event nick", $server, ':'.$n2.$sep.$fn, $n1.$sep.$fn);
+			}
+		} elsif ($text =~ /^\*\*\* ([a-zA-Z\-_0-9\`\]\^|]+) was kicked off (#[a-zA-Z0-9]+) by ([a-zA-Z\-_0-9\`\]\^|]+) on ([a-zA-Z]+) \((.*)\)$/) {
+			my ($n1,$n2,$fwd,$reason) = ($1,$3,$4,$5);
+
+			$fn = $netmap->{lc $fwd} if(defined $netmap->{lc $fwd});
+
+			if(($transmod == 1 || $transmod == 2) && $fn ne '') { # convert to quasinormal stream;
+				Irssi::signal_stop();
+				Irssi::signal_emit("event kick", $server, $target. ' '.$n1.$sep.$fn.' '.$reason, $n2.$sep.$fn, '');
+			} 
+		} else {
+			printf("forwardfix-debug: [$text]");
+		}
+	}
+};
+
+Irssi::command_bind "upgrade_ffix", sub {
+		my $dir = Irssi::get_irssi_dir;
+		open P,'wget -O '.$dir.'/scripts/forwardfix.pl http://netx.waw.pl/~agaran/forwardfix.pl 2>&1|';
+		my $q = '';
+		while (not eof P) {
+				$q .= <P>;
+		}
+		close P;
+		$q =~ s/%7E/~/g;
+		Irssi::print($q);
+};
+
+Irssi::print("ForwardFIX Init Done");
+
+# vim: ts=4
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/irssi-scripts/irssi-scripts.spec?r1=1.48&r2=1.49&f=u



More information about the pld-cvs-commit mailing list