From: bw1 Date: Tue, 15 Jan 2019 14:07:59 +0000 (+0100) Subject: [oops] add settings X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=56cf209e229102828bc4718da52d2aef637b1cdd;p=irssi-scripts.irssi.org.git [oops] add settings --- diff --git a/scripts/oops.pl b/scripts/oops.pl index d84b35b..cadaad6 100644 --- a/scripts/oops.pl +++ b/scripts/oops.pl @@ -4,31 +4,87 @@ use vars qw($VERSION %IRSSI); use Irssi; $VERSION = '20180707'; %IRSSI = ( - authors => '', - contact => '', + authors => 'bw1 and others', + contact => 'bw1@aol.at', name => 'oops', description => 'turns \'ll\' and \'ls\' in the beginning of a sent line into the names or whois commands', license => 'Public Domain', ); -sub send_text { - my $pattern = qr/(^(ll|ls)\s*$)/; +my @words; +my $wordonly; +my $warn_msg; +my $help = <{type} eq "CHANNEL") - { - $witem->command("names $witem->{name}"); - Irssi::signal_stop(); + + my $find=''; + if ($wordonly) { + foreach (@words) { + if ( $data =~ m/^$_$/ ) { + $find=$_; + } } - elsif($witem->{type} eq "QUERY") - { - $witem->command("whois $witem->{name}"); + } else { + foreach (@words) { + if ( $data =~ m/^$_(\s|$)/ ) { + $find=$_; + } + } + } + + if($find && defined $witem) { + if ($warn_msg) { + $witem->print("%r$IRSSI{name}:%n warning before word '$find'",MSGLEVEL_CRAP); Irssi::signal_stop(); + } else { + if($witem->{type} eq "CHANNEL") + { + $witem->command("names $witem->{name}"); + Irssi::signal_stop(); + } + elsif($witem->{type} eq "QUERY") + { + $witem->command("whois $witem->{name}"); + Irssi::signal_stop(); + } } } } -Irssi::signal_add 'send text' => 'send_text' +sub cmd_help { + if ($_[0] eq $IRSSI{name} ) { + Irssi::print($help, MSGLEVEL_CLIENTCRAP); + Irssi::signal_stop; + } +} + +sub reload_settings { + @words= split /\s+/,Irssi::settings_get_str($IRSSI{name}."_words"); + $wordonly=Irssi::settings_get_bool($IRSSI{name}."_wordonly"); + $warn_msg=Irssi::settings_get_bool($IRSSI{name}."_warn_msg"); +} + +Irssi::settings_add_str($IRSSI{name},$IRSSI{name}."_words", "ls"); +Irssi::settings_add_bool($IRSSI{name},$IRSSI{name}."_wordonly", "off"); +Irssi::settings_add_bool($IRSSI{name},$IRSSI{name}."_warn_msg", "off"); + +Irssi::signal_add('setup changed', \&reload_settings); +Irssi::signal_add 'send text' => 'send_text'; + +Irssi::command_bind('help', \&cmd_help ); + +reload_settings(); + +# vim:set sw=4 expandtab: