Implement !cat and !кис commands

This commit is contained in:
eleksir
2020-12-20 15:03:25 +03:00
parent 0cfecd72b3
commit 3787bb3073

View File

@@ -249,6 +249,8 @@ sub command {
} elsif (length ($text) >= 2 && (substr ($text, 1, 2) eq 'w ' || substr ($text, 1, 2) eq 'п ')) { } elsif (length ($text) >= 2 && (substr ($text, 1, 2) eq 'w ' || substr ($text, 1, 2) eq 'п ')) {
my $city = substr ($text, 3); my $city = substr ($text, 3);
$reply = weather ($city); $reply = weather ($city);
} elsif (substr ($text, 1) eq 'cat' || substr ($text, 1) eq 'кис') {
$reply = kitty();
} elsif (substr ($text, 1) eq 'lat' || substr ($text, 1) eq 'лат') { } elsif (substr ($text, 1) eq 'lat' || substr ($text, 1) eq 'лат') {
$reply = latAnswer (); $reply = latAnswer ();
} elsif ((length ($text) >= 6 && (substr ($text, 1, 6) eq 'karma ' || substr ($text, 1, 6) eq 'карма ')) || substr($text, 1) eq 'karma' || substr($text, 1) eq 'карма') { } elsif ((length ($text) >= 6 && (substr ($text, 1, 6) eq 'karma ' || substr ($text, 1, 6) eq 'карма ')) || substr($text, 1) eq 'karma' || substr($text, 1) eq 'карма') {
@@ -282,21 +284,22 @@ sub command {
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') { } elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
$reply = << 'MYHELP'; $reply = << 'MYHELP';
``` ```
!help | !помощь - список команд !help | !помощь - список команд
!dig | !копать - заняться археологией !cat | !кис - кошечка
!f | !ф - рандомная фраза из сборника цитат fortune_mod !dig | !копать - заняться археологией
!fortune | !фортунка - рандомная фраза из сборника цитат fortune_mod !f | !ф - рандомная фраза из сборника цитат fortune_mod
!f # | !ф # - где 1 - вкл, 0 - выкл фортунку с утра !fortune | !фортунка - рандомная фраза из сборника цитат fortune_mod
!fortune # | !фортунка # - где 1 - вкл, 0 - выкл фортунку с утра !f # | !ф # - где 1 - вкл, 0 - выкл фортунку с утра
!f ? | !ф ? - показываем ли с утра фортунку для чата !fortune # | !фортунка # - где 1 - вкл, 0 - выкл фортунку с утра
!fortune ? | !фортунка ? - показываем ли с утра фортунку для чата !f ? | !ф ? - показываем ли с утра фортунку для чата
!friday | !пятница - а не пятница ли сегодня? !fortune ? | !фортунка ? - показываем ли с утра фортунку для чата
!lat | !лат - сгенерировать фразу из крылатых латинских выражений !friday | !пятница - а не пятница ли сегодня?
!ping | !пинг - попинговать бота !lat | !лат - сгенерить фразу из крылатых латинских выражений
!ver | !version | !версия - что-то про версию ПО !ping | !пинг - попинговать бота
!w город | !п город - погода в указанном городе !ver | !version | !версия - что-то про версию ПО
!karma | !карма фраза - посмотреть карму фразы !w город | !п город - погода в указанном городе
фраза-- | фраза++ - убавить или добавить карму фразе !karma фраза | !карма фраза - посмотреть карму фразы
фраза-- | фраза++ - убавить или добавить карму фразе
``` ```
Но на самом деле я бот больше для общения, чем для исполнения команд. Но на самом деле я бот больше для общения, чем для исполнения команд.
Поговоришь со мной? Поговоришь со мной?
@@ -378,6 +381,30 @@ sub fmatch {
} }
} }
sub kitty {
my $r;
for (1..3) {
my $http = HTTP::Tiny->new (timeout => 3);
$r = $http->get ('https://api.thecatapi.com/v1/images/search');
last if ($r->{success});
sleep 2;
}
if ($r->{success}) {
my $jcat = eval { decode_json ($r->{content}) };
if ($jcat->[0]->{url}) {
my @cats = ('龴ↀ◡ↀ龴', '=^..^=', '≧◔◡◔≦ ','^ↀᴥↀ^' );
return sprintf '[%s](%s)', $cats[int(rand($#cats))], $jcat->[0]->{url};
} else {
return 'Нету кошечек, все разбежались.';
}
} else {
return 'Нету кошечек, все разбежались.';
}
}
1; 1;
# vim: set ft=perl noet ai ts=4 sw=4 sts=4: # vim: set ft=perl noet ai ts=4 sw=4 sts=4: