Implement !owl and !сова commands and improve !rabbit and co commands
This commit is contained in:
3
cpanfile
3
cpanfile
@@ -2,6 +2,7 @@ requires 'Carp';
|
|||||||
requires 'Cwd::utf8';
|
requires 'Cwd::utf8';
|
||||||
requires 'DB_File';
|
requires 'DB_File';
|
||||||
requires 'SQLite_File';
|
requires 'SQLite_File';
|
||||||
|
requires 'Digest::HMAC_SHA1';
|
||||||
requires 'Digest::MD5';
|
requires 'Digest::MD5';
|
||||||
requires 'Data::Dumper';
|
requires 'Data::Dumper';
|
||||||
requires 'Digest::SHA';
|
requires 'Digest::SHA';
|
||||||
@@ -22,5 +23,5 @@ requires 'Mojo::Base';
|
|||||||
requires 'Mojo::IOLoop';
|
requires 'Mojo::IOLoop';
|
||||||
requires 'Mojo::UserAgent';
|
requires 'Mojo::UserAgent';
|
||||||
requires 'Text::Fuzzy';
|
requires 'Text::Fuzzy';
|
||||||
|
requires 'URI::Encode::XS';
|
||||||
requires 'URI::URL';
|
requires 'URI::URL';
|
||||||
requires 'URI::Encode::XS';
|
|
||||||
@@ -16,7 +16,7 @@ use archeologist qw (dig);
|
|||||||
use fisher qw (fish);
|
use fisher qw (fish);
|
||||||
use fortune qw (fortune);
|
use fortune qw (fortune);
|
||||||
use friday qw (friday);
|
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 karma qw (karmaSet karmaGet);
|
||||||
use lat qw (latAnswer);
|
use lat qw (latAnswer);
|
||||||
use util qw (trim);
|
use util qw (trim);
|
||||||
@@ -102,6 +102,11 @@ sub command {
|
|||||||
$reply = rabbit ();
|
$reply = rabbit ();
|
||||||
$msg->replyMd ($reply);
|
$msg->replyMd ($reply);
|
||||||
return;
|
return;
|
||||||
|
} elsif (substr ($text, 1) eq 'owl' || substr ($text, 1) eq 'сова') {
|
||||||
|
$msg->typing ();
|
||||||
|
$reply = owl ();
|
||||||
|
$msg->replyMd ($reply);
|
||||||
|
return;
|
||||||
} elsif (
|
} elsif (
|
||||||
substr ($text, 1) eq 'tits' ||
|
substr ($text, 1) eq 'tits' ||
|
||||||
substr ($text, 1) eq 'boobs' ||
|
substr ($text, 1) eq 'boobs' ||
|
||||||
@@ -155,7 +160,7 @@ sub command {
|
|||||||
$reply = << "MYHELP";
|
$reply = << "MYHELP";
|
||||||
```
|
```
|
||||||
${csign}help | ${csign}помощь - список команд
|
${csign}help | ${csign}помощь - список команд
|
||||||
${csign}bunny | ${csign}rabbit | ${csign}кролик - кролик (бета-версия)
|
${csign}bunny | ${csign}rabbit | ${csign}кролик - кролик
|
||||||
${csign}cat | ${csign}кис - кошечка
|
${csign}cat | ${csign}кис - кошечка
|
||||||
${csign}dig | ${csign}копать - заняться археологией
|
${csign}dig | ${csign}копать - заняться археологией
|
||||||
${csign}fish | ${csign}рыба | ${csign}рыбка - порыбачить
|
${csign}fish | ${csign}рыба | ${csign}рыбка - порыбачить
|
||||||
@@ -165,6 +170,7 @@ ${csign}fortune | ${csign}фортунка - рандомная фраз
|
|||||||
${csign}fox | ${csign}лис - лисичка
|
${csign}fox | ${csign}лис - лисичка
|
||||||
${csign}friday | ${csign}пятница - а не пятница ли сегодня?
|
${csign}friday | ${csign}пятница - а не пятница ли сегодня?
|
||||||
${csign}lat | ${csign}лат - сгенерить фразу из крылатых латинских выражений
|
${csign}lat | ${csign}лат - сгенерить фразу из крылатых латинских выражений
|
||||||
|
${csign}owl | ${csign}сова - сова
|
||||||
${csign}ping | ${csign}пинг - попинговать бота
|
${csign}ping | ${csign}пинг - попинговать бота
|
||||||
${csign}ver | ${csign}version | ${csign}версия - что-то про версию ПО
|
${csign}ver | ${csign}version | ${csign}версия - что-то про версию ПО
|
||||||
${csign}w город | ${csign}п город - погода в указанном городе
|
${csign}w город | ${csign}п город - погода в указанном городе
|
||||||
|
|||||||
39
lib/image.pm
39
lib/image.pm
@@ -13,10 +13,12 @@ use HTTP::Tiny;
|
|||||||
use Math::Random::Secure qw (irand);
|
use Math::Random::Secure qw (irand);
|
||||||
use SQLite_File;
|
use SQLite_File;
|
||||||
use conf qw (loadConf);
|
use conf qw (loadConf);
|
||||||
|
use flickr qw (flickr_by_tags);
|
||||||
|
use util qw (urlencode);
|
||||||
|
|
||||||
use version; our $VERSION = qw (1.0);
|
use version; our $VERSION = qw (1.0);
|
||||||
use Exporter qw (import);
|
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 $c = loadConf ();
|
||||||
my $dir = $c->{image}->{dir};
|
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 = (
|
my @terms = (
|
||||||
'?q=animals%20AND%20%28%20rabbits%20OR%20bunnies%20%29',
|
urlencode '?q=animals AND (rabbits OR bunnies)',
|
||||||
'year?q=animals%20AND%20%28%20rabbits%20OR%20bunnies%20%29',
|
urlencode 'year?q=animals AND (rabbits OR bunnies)',
|
||||||
'relevance?q=animals+AND+%28+rabbits+OR+bunnies+%29',
|
urlencode 'relevance?q=animals AND (rabbits OR bunnies)',
|
||||||
'relevance/year?q=animals+AND+%28+rabbits+OR+bunnies+%29',
|
urlencode 'relevance/year?q=animals AND (rabbits OR bunnies)',
|
||||||
'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 '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)]);
|
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;
|
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:
|
||||||
|
|||||||
Reference in New Issue
Block a user