]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
no_opmsg: new script
authorailin-nemui <redacted>
Wed, 11 Oct 2023 13:21:11 +0000 (15:21 +0200)
committerGitHub <redacted>
Wed, 11 Oct 2023 13:21:11 +0000 (15:21 +0200)
turn wallchops messages into regular channel messages

scripts/no_opmsg.pl [new file with mode: 0644]

diff --git a/scripts/no_opmsg.pl b/scripts/no_opmsg.pl
new file mode 100644 (file)
index 0000000..9bc396e
--- /dev/null
@@ -0,0 +1,35 @@
+use strict;
+use warnings;
+use experimental 'signatures';
+use Irssi;
+
+our $VERSION = '0.1'; # 533b021b83d26b0
+our %IRSSI = (
+    authors     => 'Nei',
+    contact     => 'Nei @ anti@conference.jabber.teamidiot.de',
+    url         => "http://anti.teamidiot.de/",
+    name        => 'no_opmsg',
+    description => 'Kill incoming op messages.',
+    license     => 'ISC',
+   );
+
+our ($op_message);
+sub expando_op_message {
+    $op_message // ''
+}
+
+sub sig_event_op_public ($server, $recoded, $nick, $addr, $target) {
+    my $statusmsg = $server->isupport('statusmsg') // '@';
+    my $st = "[\Q$statusmsg\E]";
+    $target =~ s/^(($st)+)//;
+    local $op_message = $1;
+    if ($target =~ /^!/) {
+       my $ch_obj = $server->channel_find($target);
+       $target = $ch_obj->{visible_name} if $ch_obj;
+    }
+    Irssi::signal_stop;
+    Irssi::signal_emit('message public', $server, $recoded, $nick, $addr, $target);
+}
+
+Irssi::expando_create('op_message' => \&expando_op_message, { 'event privmsg' => 'none' });
+Irssi::signal_add_first('message irc op_public' => 'sig_event_op_public');
git clone https://git.99rst.org/PROJECT