3 Commits
v1.1 ... v1.2

Author SHA1 Message Date
eleksir
f256ad357f Add list of perlcritic modules used for linting 2022-04-03 18:19:35 +03:00
eleksir
62311dae21 Fix typo in кости command, use shorter var name for csign 2022-04-03 18:18:38 +03:00
eleksir
30ebe8aca1 Set userid and chatid explicitly to num for redis json msg 2022-03-27 16:06:43 +03:00
2 changed files with 41 additions and 24 deletions

View File

@@ -1,4 +1,19 @@
#!/usr/bin/env perlcritic #!/usr/bin/env perlcritic
# Задействованные модули критика:
#
# Perl::Critic::More
# Perl::Critic::Pulp
# Perl::Critic::TooMuchCode
# Perl::Critic::Lax
# Perl::Critic::CognitiveComplexity
# Perl::Critic::Policy::CompileTime
# Perl::Critic::Policy::ProhibitImplicitImport
# Perl::Critic::Policy::Dynamic::NoIndirect
# Perl::Critic::StricterSubs
# Perl::Critic::Policy::ProhibitImplicitImport
# Perl::Critic::Policy::CodeLayout::RequireUseUTF8
severity = 5 severity = 5
verbose = 8 verbose = 8

View File

@@ -173,43 +173,45 @@ my $parse_message = sub {
$m->{misc}->{bot_nick} = 'aleesa'; $m->{misc}->{bot_nick} = 'aleesa';
} }
my $csign = $m->{misc}->{csign};
if (defined $m->{misc}->{bot_nick}) { if (defined $m->{misc}->{bot_nick}) {
# Если нам сообщили ник бота, попробуем вымарать его из оригинального текста сообщения, в большинстве случаев он # Если нам сообщили ник бота, попробуем вымарать его из оригинального текста сообщения, в большинстве случаев он
# нам не интересн. # нам не интересн.
$phrase =~ s/\s*\,?\s*($m->{misc}->{bot_nick})\s*\,?\s*/ /gui; $phrase =~ s/\s*\,?\s*($m->{misc}->{bot_nick})\s*\,?\s*/ /gui;
# В ключевых фразах можно обратиться с некоторыми командами к боту по нику, не используя символ команды # В ключевых фразах можно обратиться с некоторыми командами к боту по нику, не используя символ команды
if ($m->{message} =~ /^\s*\Q;m->{misc}->{bot_nick}\E\s*;/ui) { if ($m->{message} =~ /^\s*\Q$m->{misc}->{bot_nick}\E\s*$/ui) {
$reply = 'Чего?'; $reply = 'Чего?';
} elsif ($m->{message} =~ /^(\Q$m->{misc}->{csign}\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)ping\.?\s*$/i) { } elsif ($m->{message} =~ /^(\Q$csign\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)ping\.?\s*$/i) {
$reply = 'Pong.'; $reply = 'Pong.';
} elsif ($m->{message} =~ /^(\Q$m->{misc}->{csign}\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)pong\.?\s*$/i) { } elsif ($m->{message} =~ /^(\Q$csign\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)pong\.?\s*$/i) {
$reply = 'Wat?'; $reply = 'Wat?';
} elsif ($m->{message} =~ /^(\Q$m->{misc}->{csign}\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)пин(г|х)\.?\s*$/ui) { } elsif ($m->{message} =~ /^(\Q$csign\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)пин(г|х)\.?\s*$/ui) {
$reply = 'Понг.'; $reply = 'Понг.';
} elsif ($m->{message} =~ /^(\Q$m->{misc}->{csign}\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)пон(г|х)\.?\s*$/ui) { } elsif ($m->{message} =~ /^(\Q$csign\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)пон(г|х)\.?\s*$/ui) {
$reply = 'Шта?'; $reply = 'Шта?';
} elsif ($m->{message} =~ /^(\Q$m->{misc}->{csign}\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)(хэлп|halp)\s*$/ui) { } elsif ($m->{message} =~ /^(\Q$csign\E|\Q$m->{misc}->{bot_nick}\E\s*\,?\s+)(хэлп|halp)\s*$/ui) {
$reply = 'HALP!!!11'; $reply = 'HALP!!!11';
} }
} else { } else {
# Если нам не сообщили ник бота, то ищем команды, используя символ команды # Если нам не сообщили ник бота, то ищем команды, используя символ команды
if ($m->{message} =~ /^\Q$m->{misc}->{csign}\Eping\.?\s*$/ui) { if ($m->{message} =~ /^\Q$csign\Eping\.?\s*$/ui) {
$reply = 'Pong.'; $reply = 'Pong.';
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\Epong\.?\s*$/i) { } elsif ($m->{message} =~ /^\Q$csign\Epong\.?\s*$/i) {
$reply = 'Wat?'; $reply = 'Wat?';
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\Eпин(г|х)\.?\s*$/ui) { } elsif ($m->{message} =~ /^\Q$csign\Eпин(г|х)\.?\s*$/ui) {
$reply = 'Понг.'; $reply = 'Понг.';
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\Eпон(г|х)\.?\s*$/ui) { } elsif ($m->{message} =~ /^\Q$csign\Eпон(г|х)\.?\s*$/ui) {
$reply = 'Шта?'; $reply = 'Шта?';
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\E(хэлп|halp)\s*$/ui) { } elsif ($m->{message} =~ /^\Q$csign\E(хэлп|halp)\s*$/ui) {
$reply = 'HALP!!!11'; $reply = 'HALP!!!11';
} }
} }
# Поищем в тексте входящего сообщения команды общего плана, с символом команды. # Поищем в тексте входящего сообщения команды общего плана, с символом команды.
unless (defined $reply) { unless (defined $reply) {
if ($m->{message} =~ /^\Q$m->{misc}->{csign}\E(kde|кде)\s*$/ui) { if ($m->{message} =~ /^\Q$csign\E(kde|кде)\s*$/ui) {
my @phrases = ( my @phrases = (
'Нет, я не буду поднимать вам плазму.', 'Нет, я не буду поднимать вам плазму.',
'Повторяйте эту мантру по утрам не менее 5 раз: "Плазма не падает." И, возможно, она перестанет у вас падать.', 'Повторяйте эту мантру по утрам не менее 5 раз: "Плазма не падает." И, возможно, она перестанет у вас падать.',
@@ -218,7 +220,7 @@ my $parse_message = sub {
); );
$reply = $phrases[irand ($#phrases + 1)]; $reply = $phrases[irand ($#phrases + 1)];
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\E(coin|монетка)$/ui) { } elsif ($m->{message} =~ /^\Q$csign\E(coin|монетка)$/ui) {
if (rand (101) < 0.016) { if (rand (101) < 0.016) {
$reply = 'ребро'; $reply = 'ребро';
} else { } else {
@@ -236,11 +238,11 @@ my $parse_message = sub {
} }
} }
} }
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\E(roll|dice|кости')$/ui) { } elsif ($m->{message} =~ /^\Q$csign\E(roll|dice|кости)$/ui) {
$reply = sprintf 'На первой кости выпало %d, а на второй — %d.', irand (6) + 1, irand (6) + 1; $reply = sprintf 'На первой кости выпало %d, а на второй — %d.', irand (6) + 1, irand (6) + 1;
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\E(ver|version|версия)$/ui) { } elsif ($m->{message} =~ /^\Q$csign\E(ver|version|версия)$/ui) {
$reply = 'Версия: Четыре.Технологическое_превью'; $reply = 'Версия: Четыре.Технологическое_превью';
} elsif ($m->{message} =~ /^\Q$m->{misc}->{csign}\E(lat|лат)\s*$/ui) { } elsif ($m->{message} =~ /^\Q$csign\E(lat|лат)\s*$/ui) {
$reply = Lat (); $reply = Lat ();
} }
} }
@@ -252,8 +254,8 @@ my $parse_message = sub {
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => {
from => 'craniac', from => 'craniac',
userid => $userid, userid => 0 + $userid,
chatid => $chatid, chatid => 0 + $chatid,
plugin => $m->{plugin}, plugin => $m->{plugin},
message => $reply, message => $reply,
}, },
@@ -297,8 +299,8 @@ my $parse_message = sub {
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => {
from => 'craniac', from => 'craniac',
userid => $userid, userid => 0 + $userid,
chatid => $chatid, chatid => 0 + $chatid,
plugin => $m->{plugin}, plugin => $m->{plugin},
message => $reply, message => $reply,
}, },
@@ -322,8 +324,8 @@ my $parse_message = sub {
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => {
from => 'craniac', from => 'craniac',
userid => $userid, userid => 0 + $userid,
chatid => $chatid, chatid => 0 + $chatid,
plugin => $m->{plugin}, plugin => $m->{plugin},
message => $reply, message => $reply,
}, },
@@ -365,8 +367,8 @@ my $parse_message = sub {
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => {
from => 'craniac', from => 'craniac',
userid => $userid, userid => 0 + $userid,
chatid => $chatid, chatid => 0 + $chatid,
plugin => $m->{plugin}, plugin => $m->{plugin},
message => $reply, message => $reply,
}, },