From c71ba14bdcc41571ccbd24a8681fd4280d4675c7 Mon Sep 17 00:00:00 2001 From: eleksir Date: Thu, 12 Nov 2020 00:45:16 +0300 Subject: [PATCH] Make use of karma module --- cpanfile | 1 + lib/telegrambot.pm | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/cpanfile b/cpanfile index e4948d3..8e90043 100644 --- a/cpanfile +++ b/cpanfile @@ -3,6 +3,7 @@ requires 'Cwd::utf8'; requires 'DB_File'; requires 'Digest::MD5'; requires 'Data::Dumper'; +requires 'Digest::SHA1'; requires 'File::Basename'; requires 'File::Path'; requires 'Hailo'; diff --git a/lib/telegrambot.pm b/lib/telegrambot.pm index a7f1fd7..45ff005 100644 --- a/lib/telegrambot.pm +++ b/lib/telegrambot.pm @@ -330,10 +330,12 @@ sub __on_msg { my $send_args; $send_args->{text} = << 'MYHELP'; ``` -!help | !помощь - список команд -!w город | !п город - погода в указанном городе -!ping | !пинг - попинговать бота -!lat | !лат - сгенерировать фразу из крылатых латинских выражений +!help | !помощь - список команд +!w город | !п город - погода в указанном городе +!ping | !пинг - попинговать бота +!lat | !лат - сгенерировать фразу из крылатых латинских выражений +!karma | !карма фраза - посмотреть карму фразы +фраза-- | фраза++ - убавить или добавить карму фразе ``` Но на самом деле я бот больше для общения, чем для исполнения команд. Поговоришь со мной? @@ -355,6 +357,12 @@ MYHELP $reply = weather ($city); } elsif (length ($text) == 4 && (substr ($text, 1, 3) eq 'lat' || substr ($text, 1, 3) eq 'лат')) { $reply = latAnswer(); + } elsif ((length($text) > 8) || (substr ($text, 1, 6) eq 'karma ') || (substr ($text, 1, 6) eq 'карма ')) { + my $mytext = substr ($text, 7); + $mytext = trim ($mytext); + $reply = karmaGet ($chatid, $mytext); + } elsif ((length($text) > 8) || (substr ($text, 1, 6) eq 'karma ') || (substr ($text, 1, 6) eq 'карма ')) { + $reply = 'Простите, что? Карма пустоты?'; } } elsif ( ($text eq $qname) or @@ -376,6 +384,15 @@ MYHELP } elsif ((lc ($text) =~ /.+ ${qtname}[\,|\!|\?|\.| ]/) or (lc ($text) =~ / $qtname$/)) { $phrase = $text; $reply = $hailo->{$msg->chat->id}->reply ($phrase); + } elsif ((substr ($text, -2) eq '++') && (substr ($text, -2) eq '--')) { + my @arr = split(/\n/, $text); + + if ($#arr < 1) { + $reply = kermaSet ($chatid, $phrase, substr ($text, -2)); + } else { + # just message in chat + $hailo->{$msg->chat->id}->learn ($text); + } # just message in chat } else { $hailo->{$msg->chat->id}->learn ($text);