Use all types of greet phrases to omit answer if newcommer respond to our greet with quotation
This commit is contained in:
@@ -259,31 +259,44 @@ sub __on_msg {
|
|||||||
|
|
||||||
# Если новый участник чата ответил на наше приветствие, проигнорируем его ответ (и попробуем сойти за
|
# Если новый участник чата ответил на наше приветствие, проигнорируем его ответ (и попробуем сойти за
|
||||||
# человека :)
|
# человека :)
|
||||||
# TODO: учитывать и остальные варианты приветствия
|
if (substr ($msg->reply_to_message->text, -61) eq 'Представьтес, пожалуйста, и расскажите, что вас сюда привело.') {
|
||||||
if ((substr ($msg->reply_to_message->text, 0, 9) eq 'Дратути, ') &&
|
my $match = 0;
|
||||||
(substr ($msg->reply_to_message->text, -61) eq 'Представьтес, пожалуйста, и расскажите, что вас сюда привело.')) {
|
my @hello = (
|
||||||
return;
|
'Дратути, ',
|
||||||
} else {
|
'Дарована, ',
|
||||||
# На всякий случай, попробуем убрать наше имя из фразы.
|
'Доброе утро, день или вечер, ',
|
||||||
my $pat1 = quotemeta ('@' . $myusername);
|
'Добро пожаловать в наше скромное коммунити, ',
|
||||||
my $pat2 = quotemeta $myfullname;
|
'Наше вам с кисточкой тут, на канальчике, '
|
||||||
$phrase = $text;
|
|
||||||
$phrase =~ s/$pat1//g;
|
|
||||||
$phrase =~ s/$pat2//g;
|
|
||||||
|
|
||||||
# Попробуем сгенерить ответ
|
|
||||||
my $rmsg = clone ($redismsg);
|
|
||||||
$rmsg->{mode} = 'public';
|
|
||||||
$rmsg->{message} = $phrase;
|
|
||||||
$rmsg->{userid} = $userid;
|
|
||||||
$rmsg->{chatid} = $chatid;
|
|
||||||
my $pubsub = $main::REDIS->pubsub;
|
|
||||||
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
|
||||||
$c->{'redis_router_channel'} => $rmsg
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
foreach my $hi (@hello) {
|
||||||
|
if (substr ($msg->reply_to_message->text, 0, length $hi) eq $hi) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# На всякий случай, попробуем убрать наше имя из фразы.
|
||||||
|
my $pat1 = quotemeta ('@' . $myusername);
|
||||||
|
my $pat2 = quotemeta $myfullname;
|
||||||
|
$phrase = $text;
|
||||||
|
$phrase =~ s/$pat1//g;
|
||||||
|
$phrase =~ s/$pat2//g;
|
||||||
|
|
||||||
|
# Попробуем сгенерить ответ
|
||||||
|
my $rmsg = clone ($redismsg);
|
||||||
|
$rmsg->{mode} = 'public';
|
||||||
|
$rmsg->{message} = $phrase;
|
||||||
|
$rmsg->{userid} = $userid;
|
||||||
|
$rmsg->{chatid} = $chatid;
|
||||||
|
|
||||||
|
my $pubsub = $main::REDIS->pubsub;
|
||||||
|
|
||||||
|
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
||||||
|
$c->{'redis_router_channel'} => $rmsg
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
# Если текст похож на команду, усылаем его в BotLib.pm
|
# Если текст похож на команду, усылаем его в BotLib.pm
|
||||||
} elsif (substr ($text, 0, 1) eq $csign) {
|
} elsif (substr ($text, 0, 1) eq $csign) {
|
||||||
$reply = Command ($self, $msg, $text, $chatid);
|
$reply = Command ($self, $msg, $text, $chatid);
|
||||||
|
|||||||
Reference in New Issue
Block a user