Compare commits
2 Commits
4a312e23d1
...
8bbe3b5d18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8bbe3b5d18 | ||
|
|
10fc353924 |
@@ -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();
|
||||
@@ -273,11 +273,35 @@ sub command {
|
||||
} elsif (substr ($text, 1) eq 'f ?' || substr ($text, 1) eq 'fortune ?' || substr ($text, 1) eq 'фортунка ?' || substr ($text, 1) eq 'ф ?') {
|
||||
$reply = fortune_status ($chatid);
|
||||
} elsif (substr ($text, 1) eq 'dig' || substr ($text, 1) eq 'копать') {
|
||||
my $send_args;
|
||||
$send_args->{text} = dig ($highlight);
|
||||
$send_args->{parse_mode} = 'Markdown';
|
||||
$send_args->{chat_id} = $msg->chat->id;
|
||||
Teapot::Bot::Brain::sendMessage ($self, $send_args);
|
||||
$reply = dig ($highlight);
|
||||
$msg->typing ();
|
||||
sleep (int ( rand (2) + 1));
|
||||
$msg->replyMd ($reply);
|
||||
return;
|
||||
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
||||
$reply = << 'MYHELP';
|
||||
```
|
||||
!help | !помощь - список команд
|
||||
!dig | !копать - заняться археологией
|
||||
!f | !ф - рандомная фраза из сборника цитат fortune_mod
|
||||
!fortune | !фортунка - рандомная фраза из сборника цитат fortune_mod
|
||||
!f # | !ф # - где 1 - вкл, 0 - выкл фортунку с утра
|
||||
!fortune # | !фортунка # - где 1 - вкл, 0 - выкл фортунку с утра
|
||||
!f ? | !ф ? - показываем ли с утра фортунку для чата
|
||||
!fortune ? | !фортунка ? - показываем ли с утра фортунку для чата
|
||||
!friday | !пятница - а не пятница ли сегодня?
|
||||
!lat | !лат - сгенерировать фразу из крылатых латинских выражений
|
||||
!ping | !пинг - попинговать бота
|
||||
!ver | !version | !версия - что-то про версию ПО
|
||||
!w город | !п город - погода в указанном городе
|
||||
!karma | !карма фраза - посмотреть карму фразы
|
||||
фраза-- | фраза++ - убавить или добавить карму фразе
|
||||
```
|
||||
Но на самом деле я бот больше для общения, чем для исполнения команд.
|
||||
Поговоришь со мной?
|
||||
MYHELP
|
||||
$msg->replyMd ($reply);
|
||||
return;
|
||||
}
|
||||
|
||||
return $reply;
|
||||
@@ -321,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:
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -159,33 +137,7 @@ sub __on_msg {
|
||||
my $reply = 'Давайте ещё пообщаемся, а то я ещё не научилась от вас плохому.';
|
||||
|
||||
if (substr ($text, 0, 1) eq $c->{telegrambot}->{csign}) {
|
||||
if (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
||||
$reply = << 'MYHELP';
|
||||
```
|
||||
!help | !помощь - список команд
|
||||
!dig | !копать - заняться археологией
|
||||
!f | !ф - рандомная фраза из сборника цитат fortune_mod
|
||||
!fortune | !фортунка - рандомная фраза из сборника цитат fortune_mod
|
||||
!f # | !ф # - где 1 - вкл, 0 - выкл фортунку с утра
|
||||
!fortune # | !фортунка # - где 1 - вкл, 0 - выкл фортунку с утра
|
||||
!f ? | !ф ? - показываем ли с утра фортунку для чата
|
||||
!fortune ? | !фортунка ? - показываем ли с утра фортунку для чата
|
||||
!friday | !пятница - а не пятница ли сегодня?
|
||||
!lat | !лат - сгенерировать фразу из крылатых латинских выражений
|
||||
!ping | !пинг - попинговать бота
|
||||
!ver | !version | !версия - что-то про версию ПО
|
||||
!w город | !п город - погода в указанном городе
|
||||
!karma | !карма фраза - посмотреть карму фразы
|
||||
фраза-- | фраза++ - убавить или добавить карму фразе
|
||||
```
|
||||
Но на самом деле я бот больше для общения, чем для исполнения команд.
|
||||
Поговоришь со мной?
|
||||
MYHELP
|
||||
$msg->replyMd ($reply);
|
||||
return;
|
||||
} else {
|
||||
$reply = command ($self, $msg, $text, $userid);
|
||||
}
|
||||
$reply = command ($self, $msg, $text, $userid);
|
||||
} else {
|
||||
my $just_message_in_chat = 0;
|
||||
|
||||
@@ -289,33 +241,7 @@ MYHELP
|
||||
# simple commands
|
||||
# TODO: Log commands and answers
|
||||
} elsif (substr ($text, 0, 1) eq $c->{telegrambot}->{csign}) {
|
||||
if (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
||||
$reply = << 'MYHELP';
|
||||
```
|
||||
!help | !помощь - список команд
|
||||
!dig | !копать - заняться археологией
|
||||
!f | !ф - рандомная фраза из сборника цитат fortune_mod
|
||||
!fortune | !фортунка - рандомная фраза из сборника цитат fortune_mod
|
||||
!f # | !ф # - где 1 - вкл, 0 - выкл фортунку с утра
|
||||
!fortune # | !фортунка # - где 1 - вкл, 0 - выкл фортунку с утра
|
||||
!f ? | !ф ? - показываем ли с утра фортунку для чата
|
||||
!fortune ? | !фортунка ? - показываем ли с утра фортунку для чата
|
||||
!friday | !пятница - а не пятница ли сегодня?
|
||||
!lat | !лат - сгенерировать фразу из крылатых латинских выражений
|
||||
!ping | !пинг - попинговать бота
|
||||
!ver | !version | !версия - что-то про версию ПО
|
||||
!w город | !п город - погода в указанном городе
|
||||
!karma | !карма фраза - посмотреть карму фразы
|
||||
фраза-- | фраза++ - убавить или добавить карму фразе
|
||||
```
|
||||
Но на самом деле я бот больше для общения, чем для исполнения команд.
|
||||
Поговоришь со мной?
|
||||
MYHELP
|
||||
$msg->replyMd ($reply);
|
||||
return;
|
||||
} else {
|
||||
$reply = command ($self, $msg, $text, $chatid);
|
||||
}
|
||||
$reply = command ($self, $msg, $text, $chatid);
|
||||
} elsif (
|
||||
($text eq $qname) or
|
||||
($text eq sprintf ('%s', $qtname)) or
|
||||
|
||||
Reference in New Issue
Block a user