Added masshl alias's using perlexec

This commit is contained in:
Dionysus 2023-06-15 20:46:08 -04:00
parent 2db543d686
commit 8cf05f46a1
Signed by: acidvegas
GPG Key ID: EF4B922DB85DC9DE
3 changed files with 528 additions and 19 deletions

View File

@ -87,25 +87,27 @@ sn_move = "masshl %n: 1,8/!\08,04 WARNING 1,8/!\ 04This channel has moved
sn_gold = "say You must have a SuperNETs 8,7GOLD account to view this message."
# Useful
chatsize = "say ${info:term_height} lines, ${info:term_width} characters"
clear = "buffer clear"
close = "buffer close"
collapse = "allchan -current /buffer hide; /allpv -current /buffer hide"
colors = "say 1,00001,01011,02021,03031,04041,05051,06061,07071,08081,09091,10101,11111,12121,13131,14141,1515 ; say 1,16161,17171,18181,19191,20201,21211,22221,23231,24241,25251,26261,2727 ; say 1,28281,29291,30301,31311,32321,33331,34341,35351,36361,37371,38381,3939 ; say 1,40401,41411,42421,43431,44441,45451,46461,47471,48481,49491,50501,5151 ; say 1,52521,53531,54541,55551,56561,57571,58581,59591,60601,61611,62621,6363 ; say 1,64641,65651,66661,67671,68681,69691,70701,71711,72721,73731,74741,7575 ; say 1,76761,77771,78781,79791,80801,81811,82821,83831,84841,85851,86861,8787 ; say 1,88881,89891,90901,91911,92921,93931,94941,95951,96961,97971,98981,9999;"
exempt = "mode +eI *!*@*.acid.vegas *!*@*.acid.vegas"
gh = "say https://github.com/$*"
harchats = "set irc.server.$server.anti_flood_prio_high 0 ; /set irc.server.$server.anti_flood_prio_low 0"
log = "/set logger.level.irc.$server.$channel 9"
dontlog = "/set logger.level.irc.$server.$channel 0"
msgbuf = "command -buffer $1 * /input send $2-"
ns_ident = "msg NickServ IDENTIFY ${sec.data.${server}}"
ns_setup = "msg NickServ ACCESS ADD *@big.dick.acid.vegas; msg NickServ CERT ADD; msg NickServ SET AUTOOP ON; msg NickServ SET HIDE EMAIL ON; msg NickServ SET HIDE STATUS ON; msg NickServ SET HIDE USERMASK ON; msg NickServ SET HIDE QUIT ON; msg NickServ SET KEEPMODES ON; msg NickServ SET KILL QUICK; msg NickServ SET PRIVATE ON; msg NickServ SET SECURE ON"
redraw = "color reset;window refresh"
say = "msg *"
softchats = "set irc.server.$server.anti_flood_prio_high 2 ; /set irc.server.$server.anti_flood_prio_low 2"
uncollapse = "allchan -current /buffer unhide; /allpv -current /buffer unhide"
v = "voice * -yes"
wx = "who * n%nc"
allusers = "/perlexec my $b=$buffer\; my $i=weechat::infolist_get("irc_nick", "", weechat::buffer_get_string($b, "localvar_server").",".weechat::buffer_get_string($b, "localvar_channel"))\; my $s\; while(weechat::infolist_next($i)){ $s.=weechat::infolist_string($i, "name")." "\; } weechat::command($b, "$* $s")\; weechat::infolist_free($i)\;"
chatsize = "say ${info:term_height} lines, ${info:term_width} characters"
clear = "buffer clear"
close = "buffer close"
collapse = "allchan -current /buffer hide; /allpv -current /buffer hide"
colors = "say 1,00001,01011,02021,03031,04041,05051,06061,07071,08081,09091,10101,11111,12121,13131,14141,1515 ; say 1,16161,17171,18181,19191,20201,21211,22221,23231,24241,25251,26261,2727 ; say 1,28281,29291,30301,31311,32321,33331,34341,35351,36361,37371,38381,3939 ; say 1,40401,41411,42421,43431,44441,45451,46461,47471,48481,49491,50501,5151 ; say 1,52521,53531,54541,55551,56561,57571,58581,59591,60601,61611,62621,6363 ; say 1,64641,65651,66661,67671,68681,69691,70701,71711,72721,73731,74741,7575 ; say 1,76761,77771,78781,79791,80801,81811,82821,83831,84841,85851,86861,8787 ; say 1,88881,89891,90901,91911,92921,93931,94941,95951,96961,97971,98981,9999;"
exempt = "mode +eI *!*@*.acid.vegas *!*@*.acid.vegas"
foreachuser = "/perlexec my $b=$buffer\; my $i=weechat::infolist_get("irc_nick", "", weechat::buffer_get_string($b, "localvar_server").",".weechat::buffer_get_string($b, "localvar_channel"))\; while(weechat::infolist_next($i)){ weechat::command($b, "$* ".weechat::infolist_string($i, "name"))\; } weechat::infolist_free($i)\;"
gh = "say https://github.com/$*"
harchats = "set irc.server.$server.anti_flood_prio_high 0 ; /set irc.server.$server.anti_flood_prio_low 0"
log = "/set logger.level.irc.$server.$channel 9"
dontlog = "/set logger.level.irc.$server.$channel 0"
msgbuf = "command -buffer $1 * /input send $2-"
ns_ident = "msg NickServ IDENTIFY ${sec.data.${server}}"
ns_setup = "msg NickServ ACCESS ADD *@big.dick.acid.vegas; msg NickServ CERT ADD; msg NickServ SET AUTOOP ON; msg NickServ SET HIDE EMAIL ON; msg NickServ SET HIDE STATUS ON; msg NickServ SET HIDE USERMASK ON; msg NickServ SET HIDE QUIT ON; msg NickServ SET KEEPMODES ON; msg NickServ SET KILL QUICK; msg NickServ SET PRIVATE ON; msg NickServ SET SECURE ON"
redraw = "color reset;window refresh"
say = "msg *"
softchats = "set irc.server.$server.anti_flood_prio_high 2 ; /set irc.server.$server.anti_flood_prio_low 2"
uncollapse = "allchan -current /buffer unhide; /allpv -current /buffer unhide"
v = "voice * -yes"
wx = "who * n%nc"
[completion]
msgbuf = "%(buffers_plugins_names)"

38
scripts/perl/perlexec.pl Normal file
View File

@ -0,0 +1,38 @@
# perlexec.pl by ArZa <arza@arza.us>: Execute perl code
# This program is free software: you can modify/redistribute it under the terms of
# GNU General Public License by Free Software Foundation, either version 3 or later
# which you can get from <http://www.gnu.org/licenses/>.
# This program is distributed in the hope that it will be useful, but without any warranty.
weechat::register("perlexec", "ArZa <arza\@arza.us>", "0.1", "GPL3", "Execute perl code", "", "");
weechat::hook_command("perlexec", "Execute perl code", "[code]",
"Executes perl code given as an argument or creates a buffer for execution if not given an argument.\n\n".
"Code is anything like in a weechat perl script, executed in one block.\n\n".
"\$buffer is predefined as a pointer for the buffer where this command is executed.\n\n".
"For example, close current buffer if it's a query:\n".
" /perlexec weechat::buffer_close(\$buffer) if weechat::buffer_get_string(\$buffer, \"localvar_type\") eq \"private\";",
"", "perlexec", "");
sub perlexec { # the command
if($_[2]){ # if got an argument
my $buffer=$_[1];
eval($_[2]); # execute
}else{
my $buffer=weechat::buffer_search("perl", "perlexec"); # find the buffer
if(!$buffer){ # if not found
$buffer=weechat::buffer_new("perlexec", "buffer_input", "", "", ""); # create it
weechat::buffer_set($buffer, "title", "Perl execution buffer"); # set title
}
if(weechat::current_buffer() eq $buffer){ weechat::buffer_close($buffer); } # if we already are in the buffer, close it
else{ weechat::buffer_set($buffer, "display", 1); } # otherwise, switch to it
}
return weechat::WEECHAT_RC_OK;
}
sub buffer_input { # input in the buffer
my $buffer=$_[1];
weechat::print($buffer, "> ".$_[2]); # print
eval($_[2]); # execute
return weechat::WEECHAT_RC_OK;
}

View File

@ -0,0 +1,469 @@
# -----------------------------------------------------------------------------
#
# query_blocker.pl - Simple blocker for private messages (i.e. spam).
#
# -----------------------------------------------------------------------------
# Copyright (c) 2009 by rettub <rettub@gmx.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------------
#
# Simple IRC query blocker.
# - requires WeeChat 0.3.0 or newer
# - suggests perl script newsbar
#
# Got inspiration from (xchat script):
# GodOfGTA's Query-Blocker (eng) 1.2.3
# http://home.arcor.de/godofgta/xchat/queryblocker-eng.pl
#
# -----------------------------------------------------------------------------
# Download:
# http://github.com/rettub/weechat-plugins/raw/master/perl/query_blocker.pl
# -----------------------------------------------------------------------------
# Changelog:
#
BEGIN { # Changelog for last version:
# changelog entries strating with '#' at beginning of line
# sry for unconventional, but I thing users should be able to browse
# last changes. Simply do '/newsbar changelog' out of weechat
sub changelog {
# changelog entries starting with '#' below
my $clog = <<END;
# * added command changelog
END
my @cl = split( "\$", $clog );
weechat::print("", "");
weechat::print("", "\tnewsbar: Changelog since last version: ");
weechat::print("", "\t-------------------------------------- ");
foreach my $i (@cl) {
# FIXME
#$i =~ s/#//; # doesn't work
# $i =~ s/ignore/XXX/; # works
weechat::print("", "\t$i");
}
}
}
#
# 2010-01-10, rettub:
# version 0.2:
# new options: quiet, show_hint
# auto_message, auto_message_prefix
#
# 2009-11-03, rettub:
# version 0.1: initial release
#
# -----------------------------------------------------------------------------
# FIXME
# - add 'mynick' to list - needed?
#
# TODO
# - don't show message of a blocked query, only show nick and server (by option).
# - make Auto-Messages configurable
use Data::Dumper;
use warnings;
use strict;
my $SCRIPT = 'query_blocker';
my $AUTHOR = 'rettub <rettub@gmx.net>';
my $VERSION = '0.2';
my $LICENSE = 'GPL3';
my $DESCRIPTION = 'Simple blocker for private message (i.e. spam)';
my $COMMAND = "query_blocker"; # new command name
my $ARGS_HELP = "<on> | <off> | <status> | <list [last]> | <add [nick_1 [... [nick_n]]]> | <del nick_1 [... [nick_n]]> | <reload> | <blocked [clear]> | <changelog>";
my $CMD_HELP = <<EO_HELP;
If a not allowed (blocked) nick sends you a private message, you will see a notice about nick, server and the message, but no buffer will be created. Then the nick gets a 'blocked' state, which will prevent you from seeing his queries again till you restart WeeChat, reload the script or you put the nick into the whitelist (if newsbar.pl is running notices will be printed there). In addition the user will be informed about blocking by an auto responce message when he gains the blocked state. So he can ask you in the public channel to allow his private messages.
If you send a private message to a user, his nick will be added to the whitelist.
Arguments:
on/off: toggle blocking of queries.
status: show blocking status.
list [last]: show whitelist, use last to show the nick blocked last.
add/del [nicks]: add/delete nick(s) to/from whitelist. (if no nick is given, 'add' will use the last blocked one).
('nicks' is a list of nicks seperated by spaces).
reload: reload whitelist (useful if you changed the file-location i.e. to use a common file).
blocked [clear]: list blocked nicks. If arg 'clear' is given all blocked nicks will be removed.
changelog: print changes since last version
Script Options:
whitelist: path/file-name to store/read nicks not to be blocked.
block_queries: 'on', 'off' to enable or disable $COMMAND.
auto_message: Messages to inform used that you don't like to get private messages without asking first.
'%N' will be replaced with users nick.
default: 'Right now I ignore all queries - perhaps not all :)'
auto_message_prefix: Prefix for auto message, may not be empty!
default: 'Auto-Message: '
quiet: 'on', 'off'. If 'on' send auto reply about blocking but don't send notice to you.
default: 'off'.
show_hint: 'on', 'off'. Show hint how to allow queries for nick. default 'on'.
By default all private messages (/query, /msg) from nicks not in the whitelist will be blocked.
- to allow all private message, $SCRIPT can be disabled, type '/$COMMAND off'.
- to allow private messages from certain nicks, put them into the whitelist, type '/$COMMAND add nick'.
- to remove a nick from the whitelist, type '/$COMMAND del nick'.
NOTE: If you load $SCRIPT the first time, blocking of private messages is disabled, you have to enable blocking, type '/$COMMAND on'.
EO_HELP
my $COMPLETITION = "on|off|status|list|add|del|reload|blocked|changelog";
my $CALLBACK = $COMMAND;
my $CALLBACK_DATA = undef;
# script options
my %SETTINGS = (
"block_queries" => "off",
"quiet" => 'off',
"show_hint" => 'on',
"whitelist" => "qb-whitelist.txt",
"auto_message" => "Right now I ignore all queries - perhaps not all :)",
"auto_message_prefix" => "Auto-Message: ",
);
# FIXME store server too?
my $Last_query_nick = undef;
my $Deny_message = "";
sub DEBUG {weechat::print('', "***\t" . $_[0]);}
# {{{ helpers
#
# irc_nick_find_color: find a color for a nick (according to nick letters)
# (ported to perl from WeeChats source)
sub irc_nick_find_color
{
my $color = 0;
foreach my $c (split(//, $_[0]))
{
$color += ord($c);
}
$color = ($color %
weechat::config_integer (weechat::config_get ("weechat.look.color_nicks_number")));
my $color_name = sprintf("chat_nick_color%02d", $color + 1);
return weechat::color ($color_name);
}
# }}}
my %Blocked = ();
my %Allowed = ();
sub nick_allowed { return exists $Allowed{ lc $_[0] }; }
sub whitelist_read {
my $whitelist = weechat::config_get_plugin( "whitelist" );
return unless -e $whitelist;
open (WL, "<", $whitelist) || DEBUG("$whitelist: $!");
while (<WL>) {
chomp;
$Allowed{$_} = 1 if length $_;
}
close WL;
}
sub whitelist_save {
my $whitelist = weechat::config_get_plugin( "whitelist" );
open (WL, ">", $whitelist) || DEBUG("write whitelist: $!");
print WL "$_\n" foreach ( sort { "\L$a" cmp "\L$b" } keys %Allowed );
close WL;
}
# newsbar api staff {{{
sub info2newsbar {
my ( $color, $category, $server, $nick, $message ) = @_;
weechat::command( '',
"/newsbar add --color $color $category\t"
. irc_nick_find_color($nick)
. $nick
. weechat::color('reset') . '@'
. irc_nick_find_color($server)
. $server
. weechat::color('reset')
. weechat::color('bold')
. " tries to start a query: "
. weechat::color('reset')
. $message );
weechat::command( '',
"/newsbar add --color $color $category\t"
. "To allow the query, type: "
. "/$COMMAND add $nick" ) unless (weechat::config_get_plugin('show_hint') eq 'off');
}
sub newsbar {
my $info_list = weechat::infolist_get( "perl_script", "name", "newsbar" );
weechat::infolist_next($info_list);
return weechat::infolist_string( $info_list, "name" ) eq 'newsbar';
}
#}}}
sub info_as_notice {
my ( $server, $my_nick, $nick, $message ) = @_;
weechat::command( '', "/notice -server $server $my_nick $nick Tries to start a query: $message" );
weechat::command( '', "/notice -server $server $my_nick $nick To allow the query type: /$COMMAND add $nick" )
unless (weechat::config_get_plugin('show_hint') eq 'off');
}
sub modifier_irc_in_privmsg {
my ( $data, $signal, $server, $arg ) = @_;
my $my_nick = weechat::info_get( 'irc_nick', $server );
if ( $arg =~ m/:(.+?)\!.+? PRIVMSG $my_nick :(\w.*)/ ) {
my $query_nick = $1;
my $query_msg = $2;
# if nick is allowed to send queries, let WeeChat handle the query
return $arg if nick_allowed($query_nick);
$Last_query_nick = $query_nick;
unless ( exists $Blocked{$query_nick} ) {
unless (weechat::config_get_plugin('quiet') eq 'on') {
if ( newsbar() ) {
info2newsbar( 'lightred', '[QUERY-WARN]', $server, $query_nick, $query_msg );
} else {
info_as_notice( $server, $my_nick, $query_nick, $query_msg );
}
}
# auto responce msg to query_nick
my $msg = $Deny_message;
$msg =~ s/%N/$query_nick/g;
weechat::command( '', "/msg -server $server $query_nick $msg " );
$Blocked{$query_nick} = 0;
}
$Blocked{$query_nick}++;
} else {
return $arg;
}
# return empty string - don't create a new buffer
return '';
}
sub _add {
my $arg = shift;
if ( defined $arg ) {
foreach ( split( / +/, $arg ) ) {
$Last_query_nick = undef if ( defined $Last_query_nick and $_ eq $Last_query_nick );
$Allowed{$_} = 1;
delete $Blocked{$_};
weechat::print( '', "Allow queries for: '" . irc_nick_find_color($_) . $_ . weechat::color('reset') . "'");
}
whitelist_save();
} elsif ( defined $Last_query_nick and not exists $Allowed{$Last_query_nick} ) {
$Allowed{$Last_query_nick} = 1;
delete $Blocked{$Last_query_nick};
weechat::print( '', "Allow queries for: '" . irc_nick_find_color($Last_query_nick) . $Last_query_nick . weechat::color('reset') . "'");
$Last_query_nick = undef;
whitelist_save();
# FIXME: open query window
} else {
weechat::print( '', "There is no nick to be added to the whitelist");
}
}
# handle hooks {{{
{
my %Hooks;
sub qb_hooked { %Hooks };
sub qb_hook {
return 1 if qb_hooked();
$Hooks{query} = weechat::hook_command_run( '/query *', 'qb_query', "" );
$Hooks{msg} = weechat::hook_command_run( '/msg *', 'qb_msg', "" );
$Hooks{modifier} = weechat::hook_modifier( "irc_in_privmsg", "modifier_irc_in_privmsg", "" );
# FIXME handle hook errors (hook_ returns NULL := '')
DEBUG("cant hook command '/query'") if $Hooks{query} eq '';
DEBUG("cant hook command '/msg'") if $Hooks{msg} eq '';
DEBUG("cant hook modifier 'irc_in_privmsg'") if $Hooks{modifier} eq '';
return 0;
}
sub qb_unhook {
return 1 unless qb_hooked();
# FIXME handle hook errors (hook_ returns NULL := '')
weechat::unhook( $Hooks{query} );
weechat::unhook( $Hooks{msg} );
weechat::unhook( $Hooks{modifier} );
undef %Hooks;
return 0;
}
} # }}}
sub toggled_by_set {
my ( $script, $option, $value ) = @_;
if ( $value ne 'on' ) { # all values different to 'on' will disable blocking
if ( $value ne 'off' ) {
weechat::config_set_plugin( $option, "off" );
DEBUG("wrong value for option '$option', falling back to 'off'");
}
if ( qb_hooked() ) { # enabled?
qb_unhook();
weechat::print( '', "$COMMAND: disabled" );
} else {
weechat::print( '', "$COMMAND: already disabled" );
}
} else { # enable blocking
unless ( qb_hooked() ) {
qb_hook();
weechat::print( '', "$COMMAND: private messages will be blocked" );
} else {
weechat::print( '', "$COMMAND: private messages already blocked" );
}
}
return weechat::WEECHAT_RC_OK;
}
sub query_blocker {
my ( $data, $buffer, $args ) = ( $_[0], $_[1], $_[2] );
if ( $args =~ /^o(n|ff)$/ ) {
weechat::config_set_plugin( 'block_queries', $args );
} elsif ( $args eq 'status' ) {
if ( weechat::config_get_plugin( 'block_queries') eq 'on' ) {
weechat::print( '', "$COMMAND: private messages will be blocked");
} else {
weechat::print( '', "$COMMAND: disabled");
}
} elsif ( $args eq 'reload' ) {
whitelist_read();
} elsif ( $args eq 'changelog' ) {
changelog();
} else {
my ( $cmd, $arg ) = ( $args =~ /(.*?)\s+(.*)/ );
$cmd = $args unless $cmd;
if ( $cmd eq 'list' ) {
if ( defined $arg and $arg eq 'last' ) {
if (defined $Last_query_nick) {
weechat::print( '', "Last blocked nick: '" . irc_nick_find_color($Last_query_nick) . $Last_query_nick . weechat::color('reset') . "'");
} else {
weechat::print( '', "No blocked nicks");
}
} else {
my $n = keys %Allowed;
weechat::print( '', "Allowed nicks for queries ($n):" );
foreach ( sort { "\L$a" cmp "\L$b" } keys %Allowed ) {
weechat::print( '', " " . irc_nick_find_color($_) . $_ );
}
}
} elsif ( $cmd eq 'blocked' ) {
if ( keys %Blocked ) {
if ( defined $arg and $arg eq 'clear' ) {
foreach ( sort { "\L$a" cmp "\L$b" } keys %Blocked ) {
weechat::print( '', "Removing blocked state from" . irc_nick_find_color($_) . $_ );
delete $Blocked{$_};
}
} else {
weechat::print( '', "Queries of this nicks have been blocked:" );
foreach ( sort { "\L$a" cmp "\L$b" } keys %Blocked ) {
weechat::print( '', " " . irc_nick_find_color($_) . $_ . weechat::color('reset') . " (#$Blocked{$_})");
}
}
} else {
weechat::print( '', "No nicks have been blocked" );
}
} elsif ( $cmd eq 'add' ) {
_add($arg);
}elsif ( $cmd eq 'del' and defined $arg ) {
foreach ( split( / +/, $arg ) ) {
if (exists $Allowed{$_} ) {
delete $Allowed{$_};
weechat::print( '', "Nick removed from whitelist: '" . irc_nick_find_color($_) . $_ . weechat::color('reset') . "'");
} else {
weechat::print( '', "Can't remove nick, not in whitelist: '" . irc_nick_find_color($_) . $_ . weechat::color('reset') . "'");
}
}
whitelist_save();
}
}
return weechat::WEECHAT_RC_OK;
}
sub _get_nick {
my ($l) = shift;
$l =~ s/\/(query|msg) +//;
if ($l =~ /-server/ ) {
$l =~ s/-server \w+ //;
}
$l =~ s/ .*$//;
return $l;
}
sub qb_query {
my $n = _get_nick($_[2]);
_add($n) unless nick_allowed($n);
return weechat::WEECHAT_RC_OK;
}
# add nick as allowed if responce isn't auto reply
sub qb_msg {
my ($msg) = $_[2] =~ /^\/msg -server .*?\s.*?\s(.*)/;
my $n = _get_nick($_[2]);
my $prefix = weechat::config_get_plugin('auto_message_prefix');
_add($n) unless nick_allowed($n) or $msg =~ /^$prefix/;
return weechat::WEECHAT_RC_OK;
}
# -----------------------------------------------------------------------------
#
if ( weechat::register( $SCRIPT, $AUTHOR, $VERSION, $LICENSE, $DESCRIPTION, "", "" ) ) {
weechat::hook_command( $COMMAND, $DESCRIPTION, $ARGS_HELP, $CMD_HELP, $COMPLETITION, $CALLBACK, "" );
# FIXME [bug #27936]
if ( weechat::config_get_plugin("whitelist") eq '' ) {
my $wd = weechat::info_get( "weechat_dir", "" );
$wd =~ s/\/$//;
weechat::config_set_plugin( "whitelist", $wd . "/" . $SETTINGS{"whitelist"} );
}
while ( my ( $option, $default_value ) = each(%SETTINGS) ) {
weechat::config_set_plugin( $option, $default_value )
if weechat::config_get_plugin($option) eq "";
}
$Deny_message = weechat::config_get_plugin('auto_message_prefix') . weechat::config_get_plugin('auto_message');
whitelist_read();
weechat::print( '', "$COMMAND: loaded whitelist '" . weechat::config_get_plugin( "whitelist" ) . "'");
weechat::hook_config( "plugins.var.perl.$SCRIPT.block_queries", 'toggled_by_set', $SCRIPT );
if (weechat::config_get_plugin('block_queries') eq "on") {
qb_hook();
weechat::print( '', "$COMMAND: private messages will be blocked");
} else {
weechat::print( '', "$COMMAND: disabled");
}
}
# vim: ai ts=4 sts=4 et sw=4 tw=0 foldmethod=marker :