Implement !owl and !сова commands and improve !rabbit and co commands

This commit is contained in:
eleksir
2021-03-07 14:36:14 +03:00
parent c8a766881e
commit d55d35f877
3 changed files with 42 additions and 10 deletions

View File

@@ -2,6 +2,7 @@ requires 'Carp';
requires 'Cwd::utf8';
requires 'DB_File';
requires 'SQLite_File';
requires 'Digest::HMAC_SHA1';
requires 'Digest::MD5';
requires 'Data::Dumper';
requires 'Digest::SHA';
@@ -22,5 +23,5 @@ requires 'Mojo::Base';
requires 'Mojo::IOLoop';
requires 'Mojo::UserAgent';
requires 'Text::Fuzzy';
requires 'URI::Encode::XS';
requires 'URI::URL';
requires 'URI::Encode::XS';

View File

@@ -16,7 +16,7 @@ use archeologist qw (dig);
use fisher qw (fish);
use fortune qw (fortune);
use friday qw (friday);
use image qw (kitty fox oboobs obutts rabbit);
use image qw (kitty fox oboobs obutts rabbit owl);
use karma qw (karmaSet karmaGet);
use lat qw (latAnswer);
use util qw (trim);
@@ -102,6 +102,11 @@ sub command {
$reply = rabbit ();
$msg->replyMd ($reply);
return;
} elsif (substr ($text, 1) eq 'owl' || substr ($text, 1) eq 'сова') {
$msg->typing ();
$reply = owl ();
$msg->replyMd ($reply);
return;
} elsif (
substr ($text, 1) eq 'tits' ||
substr ($text, 1) eq 'boobs' ||
@@ -155,7 +160,7 @@ sub command {
$reply = << "MYHELP";
```
${csign}help | ${csign}помощь - список команд
${csign}bunny | ${csign}rabbit | ${csign}кролик - кролик (бета-версия)
${csign}bunny | ${csign}rabbit | ${csign}кролик - кролик
${csign}cat | ${csign}кис - кошечка
${csign}dig | ${csign}копать - заняться археологией
${csign}fish | ${csign}рыба | ${csign}рыбка - порыбачить
@@ -165,6 +170,7 @@ ${csign}fortune | ${csign}фортунка - рандомная фраз
${csign}fox | ${csign}лис - лисичка
${csign}friday | ${csign}пятница - а не пятница ли сегодня?
${csign}lat | ${csign}лат - сгенерить фразу из крылатых латинских выражений
${csign}owl | ${csign}сова - сова
${csign}ping | ${csign}пинг - попинговать бота
${csign}ver | ${csign}version | ${csign}версия - что-то про версию ПО
${csign}w город | ${csign}п город - погода в указанном городе

View File

@@ -13,10 +13,12 @@ use HTTP::Tiny;
use Math::Random::Secure qw (irand);
use SQLite_File;
use conf qw (loadConf);
use flickr qw (flickr_by_tags);
use util qw (urlencode);
use version; our $VERSION = qw (1.0);
use Exporter qw (import);
our @EXPORT_OK = qw (kitty fox oboobs obutts rabbit);
our @EXPORT_OK = qw (kitty fox oboobs obutts rabbit owl);
my $c = loadConf ();
my $dir = $c->{image}->{dir};
@@ -301,13 +303,15 @@ sub imgur {
}
}
sub rabbit {
# It works but results are not particulary relevant, partially. about 20-30% miss
# So i prefer to use flickr rabbits selection :)
sub rabbit_imgur {
my @terms = (
'?q=animals%20AND%20%28%20rabbits%20OR%20bunnies%20%29',
'year?q=animals%20AND%20%28%20rabbits%20OR%20bunnies%20%29',
'relevance?q=animals+AND+%28+rabbits+OR+bunnies+%29',
'relevance/year?q=animals+AND+%28+rabbits+OR+bunnies+%29',
'score?q_not=cat%20OR%20kitten%20OR%20kittens%20OR%20dog%20OR%20cats%20OR%20dogs%20OR%20puppy%20OR%20puppies&q_tags=bunnies%2Cbunny%2Crabbits%2Crabbit'
urlencode '?q=animals AND (rabbits OR bunnies)',
urlencode 'year?q=animals AND (rabbits OR bunnies)',
urlencode 'relevance?q=animals AND (rabbits OR bunnies)',
urlencode 'relevance/year?q=animals AND (rabbits OR bunnies)',
urlencode 'score?q_not=cat OR kitten OR kittens OR dog OR cats OR dogs OR puppy OR puppies&q_tags=bunnies,bunny,rabbits,rabbit'
);
my $rabbit = imgur ($terms[irand ($#terms + 1)]);
@@ -321,6 +325,27 @@ sub rabbit {
}
}
sub rabbit {
# rabbit, but bunny
my $url = flickr_by_tags ('animal,bunny');
if (defined $url) {
return sprintf '[(\_/)](%s)', $url;
} else {
return 'Нету кроликов, все разбежались.';
}
}
sub owl {
my $url = flickr_by_tags ('bird,owl');
if (defined $url) {
return sprintf '[{ O v O }](%s)', $url;
} else {
return 'Нету сов, все разлетелись.';
}
}
1;
# vim: set ft=perl noet ai ts=4 sw=4 sts=4: