use Irssi;\r
$VERSION = '20180707';\r
%IRSSI = (\r
- authors => '',\r
- contact => '',\r
+ authors => 'bw1 and others',\r
+ contact => 'bw1@aol.at',\r
name => 'oops',\r
description =>\r
'turns \'ll\' and \'ls\' in the beginning of a sent line into the names or whois commands',\r
license => 'Public Domain',\r
);\r
\r
-sub send_text {\r
- my $pattern = qr/(^(ll|ls)\s*$)/;\r
+my @words;\r
+my $wordonly;\r
+my $warn_msg;\r
+my $help = <<eof;\r
+%9Settings:%9\r
+ $IRSSI{name}_words\r
+ a list of words separated by a whitespace\r
+ $IRSSI{name}_wordonly\r
+ match if the word stand alone \r
+ $IRSSI{name}_warn_msg\r
+ output only a warning message\r
+eof\r
\r
+sub send_text {\r
#"send text", char *line, SERVER_REC, WI_ITEM_REC\r
my ( $data, $server, $witem ) = @_;\r
- if($data =~ $pattern) {\r
- if($witem->{type} eq "CHANNEL")\r
- {\r
- $witem->command("names $witem->{name}");\r
- Irssi::signal_stop();\r
+\r
+ my $find='';\r
+ if ($wordonly) {\r
+ foreach (@words) {\r
+ if ( $data =~ m/^$_$/ ) {\r
+ $find=$_;\r
+ }\r
}\r
- elsif($witem->{type} eq "QUERY")\r
- {\r
- $witem->command("whois $witem->{name}");\r
+ } else {\r
+ foreach (@words) {\r
+ if ( $data =~ m/^$_(\s|$)/ ) {\r
+ $find=$_;\r
+ }\r
+ }\r
+ }\r
+\r
+ if($find && defined $witem) {\r
+ if ($warn_msg) {\r
+ $witem->print("%r$IRSSI{name}:%n warning before word '$find'",MSGLEVEL_CRAP);\r
Irssi::signal_stop();\r
+ } else {\r
+ if($witem->{type} eq "CHANNEL")\r
+ {\r
+ $witem->command("names $witem->{name}");\r
+ Irssi::signal_stop();\r
+ }\r
+ elsif($witem->{type} eq "QUERY")\r
+ {\r
+ $witem->command("whois $witem->{name}");\r
+ Irssi::signal_stop();\r
+ }\r
}\r
}\r
}\r
\r
-Irssi::signal_add 'send text' => 'send_text'\r
+sub cmd_help {\r
+ if ($_[0] eq $IRSSI{name} ) {\r
+ Irssi::print($help, MSGLEVEL_CLIENTCRAP);\r
+ Irssi::signal_stop;\r
+ }\r
+}\r
+\r
+sub reload_settings {\r
+ @words= split /\s+/,Irssi::settings_get_str($IRSSI{name}."_words");\r
+ $wordonly=Irssi::settings_get_bool($IRSSI{name}."_wordonly");\r
+ $warn_msg=Irssi::settings_get_bool($IRSSI{name}."_warn_msg");\r
+}\r
+\r
+Irssi::settings_add_str($IRSSI{name},$IRSSI{name}."_words", "ls");\r
+Irssi::settings_add_bool($IRSSI{name},$IRSSI{name}."_wordonly", "off");\r
+Irssi::settings_add_bool($IRSSI{name},$IRSSI{name}."_warn_msg", "off");\r
+\r
+Irssi::signal_add('setup changed', \&reload_settings);\r
+Irssi::signal_add 'send text' => 'send_text';\r
+\r
+Irssi::command_bind('help', \&cmd_help );\r
+\r
+reload_settings();\r
+\r
+# vim:set sw=4 expandtab:\r