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 => '[email protected]', + 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 _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
