diff --git a/lib/botlib.pm b/lib/botlib.pm index d42b303..16996cc 100644 --- a/lib/botlib.pm +++ b/lib/botlib.pm @@ -22,7 +22,7 @@ use archeologist qw (dig); use vars qw/$VERSION/; use Exporter qw(import); -our @EXPORT_OK = qw(weather trim randomCommonPhrase command highlight); +our @EXPORT_OK = qw(weather trim randomCommonPhrase command highlight botsleep); $VERSION = '1.0'; my $c = loadConf(); @@ -274,6 +274,8 @@ sub command { $reply = fortune_status ($chatid); } elsif (substr ($text, 1) eq 'dig' || substr ($text, 1) eq 'копать') { $reply = dig ($highlight); + $msg->typing (); + sleep (int ( rand (2) + 1)); $msg->replyMd ($reply); return; } elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') { @@ -343,6 +345,23 @@ sub highlight { return ($userid, $username, $fullname, $highlight, $visavi); } + +sub botsleep { + # TODO: Parametrise this with fuzzy sleep time in seconds + my $msg = shift; + # let's emulate real human and delay answer + sleep (int ( rand (2) + 1)); + + for (0..(4 + int (rand (3)))) { + $msg->typing (); + sleep(3); + sleep 3 unless ($_); + } + + sleep ( 3 + int ( rand (2))); + return; +} + 1; # vim: set ft=perl noet ai ts=4 sw=4 sts=4: diff --git a/lib/telegrambot.pm b/lib/telegrambot.pm index 38207f3..74c405d 100644 --- a/lib/telegrambot.pm +++ b/lib/telegrambot.pm @@ -12,7 +12,7 @@ use File::Path qw(mkpath); use Hailo; use Mojo::Base 'Teapot::Bot::Brain'; use conf qw(loadConf); -use botlib qw(weather trim randomCommonPhrase command highlight); +use botlib qw(weather trim randomCommonPhrase command highlight botsleep); use karma qw(karmaSet); use fortune qw(fortune fortune_toggle_list); @@ -103,30 +103,8 @@ sub __on_msg { # Newcommer event, greet our new member and suggest to introduce themself. if ($msg->can ('new_chat_members') && defined ($msg->new_chat_members)) { - if (defined ($username)) { - if (defined ($fullname)) { - carp "[DEBUG] Newcommer in $chatname ($chatid): \@$username, $fullname ($userid)" if $c->{debug}; - $phrase = "Дратути, [$fullname](tg://user?id=$userid). Представьтес, пожалуйста, и расскажите, что вас сюда привело."; - } else { - carp "[DEBUG] Newcommer in $chatname ($chatid): \@$username ($userid)" if $c->{debug}; - $phrase = "Дратути, [$username](tg://user?id=$userid). Представьтес, пожалуйста, и расскажите, что вас сюда привело."; - } - } else { - carp "[DEBUG] Newcommer in $chatname ($chatid): $fullname ($userid)" if $c->{debug}; - $phrase = "Дратути, [$fullname](tg://user?id=$userid). Представьтес, пожалуйста, и расскажите, что вас сюда привело."; - } - - # let's emulate real human and delay answer - sleep (int ( rand (2) + 1)); - - for (0..(4 + int (rand (3)))) { - $msg->typing (); - sleep(3); - sleep 3 unless ($_); - } - - sleep ( 3 + int ( rand (2))); - + $phrase = "Дратути, $highlight. Представьтес, пожалуйста, и расскажите, что вас сюда привело."; + botsleep($msg); $msg->replyMd ($phrase); return; }