]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
[banaffects][#7] version 0.2
authortomaw <redacted>
Mon, 30 Jan 2006 23:27:30 +0000 (00:27 +0100)
committerbw1 <redacted>
Sat, 13 Jan 2018 23:27:30 +0000 (00:27 +0100)
scripts/banaffects.pl [new file with mode: 0644]

diff --git a/scripts/banaffects.pl b/scripts/banaffects.pl
new file mode 100644 (file)
index 0000000..ff36ddb
--- /dev/null
@@ -0,0 +1,55 @@
+use strict;
+use Irssi;
+use Irssi::Irc;
+
+use vars qw($VERSION %IRSSI);
+$VERSION = "0.2";
+%IRSSI = (
+    authors     => 'Valentin Batz',
+    contact     => 'senneth@irssi.org',
+    name        => 'banaffects',
+    description => 'shows affected nicks by a ban on a new ban',
+    url                => 'http://www.oberkommando.org/~senneth/irssi/scripts/',
+    licence    => 'GPLv2',
+    revision    => '$LastChangedRevision: 369 $',
+    changed     => '$LastChangedDate: 2006-01-31 22:35:03 +0100 (Di, 31 Jan 2006) $',
+    version    => $VERSION,
+);
+
+Irssi::theme_register([ 'ban_affects', '         %K-%r-%R-%n Ban {hilight $0} affects: {hilight $1-}']);
+
+sub ban_new() {
+       #print "@_";
+       my ($chan, $ban) = @_;
+       return unless $chan;
+       my $server = $chan->{server};
+       my $banmask = $ban->{ban};
+       my $window = $server->window_find_item($chan->{name});
+       my @matches;
+       foreach my $nick ( sort ( $chan->nicks() ) ) {
+               if (Irssi::mask_match_address( $banmask, $nick->{nick}, $nick->{host} )) {
+                       push (@matches, $nick->{nick});
+               }
+       }
+       my $nicks = join(", ", @matches);
+       $window->printformat(MSGLEVEL_CRAP, 'ban_affects', $banmask, $nicks) if ($nicks ne '');
+}
+
+Irssi::signal_add('ban new', \&ban_new);
+
+sub test_ban() {
+       my ($arg, $server, $witem) = @_;
+       return unless (defined $witem && $witem->{type} eq 'CHANNEL');
+       my $chan = $server->channel_find($witem->{name});
+       my @matches;
+       foreach my $nick ( sort ( $chan->nicks() ) ) {
+               if (Irssi::mask_match_address( $arg, $nick->{nick}, $nick->{host} )) {
+                       push (@matches, $nick->{nick});
+               }
+       }
+       my $nicks = join(", ", @matches);
+       $witem->printformat(MSGLEVEL_CRAP, 'ban_affects', $arg, $nicks) if ($nicks ne '');
+}
+
+
+Irssi::command_bind('banaffects', \&test_ban);
git clone https://git.99rst.org/PROJECT