Perlcritic overhaul, apply to Teapot lib too
This commit is contained in:
10
.gitignore
vendored
10
.gitignore
vendored
@@ -2,15 +2,7 @@ _Deparsed_XSubs.pm
|
|||||||
.idea/**
|
.idea/**
|
||||||
.vscode/**
|
.vscode/**
|
||||||
.vstags
|
.vstags
|
||||||
aleesa-telegram-bot.pid
|
aleesa-telegram.pid
|
||||||
data/cache/**
|
data/cache/**
|
||||||
data/config.json
|
data/config.json
|
||||||
data/fortune/**
|
|
||||||
data/friday/**
|
|
||||||
data/gamestat/**
|
|
||||||
data/image/**
|
|
||||||
data/karma/**
|
|
||||||
data/lat/**
|
|
||||||
data/proverb/**
|
|
||||||
data/telegrambot-brains/**
|
|
||||||
vendor_perl/**
|
vendor_perl/**
|
||||||
|
|||||||
@@ -95,4 +95,36 @@ lib_sections = NAME | VERSION | DESCRIPTION | AUTHOR | LICENSE AND COPYRIGHT
|
|||||||
|
|
||||||
[-ControlStructures::ProhibitUntilBlocks]
|
[-ControlStructures::ProhibitUntilBlocks]
|
||||||
# Until is really useful if condition is simple, so let's assume condition is
|
# Until is really useful if condition is simple, so let's assume condition is
|
||||||
# always simple to read
|
# always simple to read
|
||||||
|
|
||||||
|
[-CodeLayout::RequireASCII]
|
||||||
|
# Nope
|
||||||
|
|
||||||
|
[-Editor::RequireEmacsFileVariables]
|
||||||
|
|
||||||
|
[-TooMuchCode::ProhibitUnnecessaryUTF8Pragma]
|
||||||
|
|
||||||
|
[-ErrorHandling::RequireUseOfExceptions]
|
||||||
|
|
||||||
|
[-Lax::ProhibitEmptyQuotes::ExceptAsFallback]
|
||||||
|
|
||||||
|
[-TooMuchCode::ProhibitDuplicateLiteral]
|
||||||
|
|
||||||
|
[-ValuesAndExpressions::RequireConstantOnLeftSideOfEquality]
|
||||||
|
# But constants on the right side of coditional expression are more readable!
|
||||||
|
|
||||||
|
[-Lax::RequireConstantOnLeftSideOfEquality::ExceptEq]
|
||||||
|
# same as previous
|
||||||
|
|
||||||
|
[ValuesAndExpressions::RestrictLongStrings]
|
||||||
|
max_length = 200
|
||||||
|
|
||||||
|
[-TooMuchCode::ProhibitExtraStricture]
|
||||||
|
|
||||||
|
[-Documentation::ProhibitUnbalancedParens]
|
||||||
|
# closing paren on the next, you fucking fuck, so shut your ass up and stop farting on me
|
||||||
|
|
||||||
|
[-Subroutines::ProhibitCallsToUndeclaredSubs]
|
||||||
|
# Can't find how to mark DSL keywords
|
||||||
|
# (Moo{,se} provides has/with/extends/etc., Dancer{,2} provides more)
|
||||||
|
# This is problematic
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
@@ -29,9 +29,10 @@ no Cwd;
|
|||||||
use Cwd::utf8 qw (chdir abs_path);
|
use Cwd::utf8 qw (chdir abs_path);
|
||||||
use File::Basename qw (basename dirname);
|
use File::Basename qw (basename dirname);
|
||||||
use File::Path qw (make_path);
|
use File::Path qw (make_path);
|
||||||
|
use File::Spec qw ();
|
||||||
use Log::Any qw ($log);
|
use Log::Any qw ($log);
|
||||||
use Log::Any::Adapter;
|
use Log::Any::Adapter ();
|
||||||
use Log::Any::For::Std;
|
use Log::Any::For::Std ();
|
||||||
use POSIX qw (setgid setuid setsid);
|
use POSIX qw (setgid setuid setsid);
|
||||||
use BotLib::Conf qw (LoadConf);
|
use BotLib::Conf qw (LoadConf);
|
||||||
use TelegramBot qw (RunTelegramBot);
|
use TelegramBot qw (RunTelegramBot);
|
||||||
@@ -68,8 +69,8 @@ if ($UID == 0) {
|
|||||||
make_path (
|
make_path (
|
||||||
$piddir, {
|
$piddir, {
|
||||||
uid => $uid,
|
uid => $uid,
|
||||||
group => $gid
|
group => $gid,
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,8 +81,8 @@ if ($UID == 0) {
|
|||||||
make_path (
|
make_path (
|
||||||
$logdir, {
|
$logdir, {
|
||||||
uid => $uid,
|
uid => $uid,
|
||||||
group => $gid
|
group => $gid,
|
||||||
}
|
},
|
||||||
) or die "Unable to create $logdir: $OS_ERROR\n";
|
) or die "Unable to create $logdir: $OS_ERROR\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -101,14 +102,14 @@ if (defined $logfile) {
|
|||||||
# verbosity paticulary for CHI.
|
# verbosity paticulary for CHI.
|
||||||
Log::Any::Adapter->set (
|
Log::Any::Adapter->set (
|
||||||
{
|
{
|
||||||
category => 'CHI::Driver'
|
category => 'CHI::Driver',
|
||||||
},
|
},
|
||||||
'File',
|
'File',
|
||||||
$logfile,
|
$logfile,
|
||||||
log_level => 'warn'
|
log_level => 'warn',
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Log::Any::Adapter->set ('File', '/dev/null');
|
Log::Any::Adapter->set ('File', File::Spec->devnull);
|
||||||
}
|
}
|
||||||
|
|
||||||
# double fork attach to /dev/null all stdio and go background
|
# double fork attach to /dev/null all stdio and go background
|
||||||
@@ -120,7 +121,7 @@ my $apath = abs_path $PROGRAM_NAME;
|
|||||||
unless (defined $apath) {
|
unless (defined $apath) {
|
||||||
$log->fatal ("[FATAL] Unable to get abs_path: $OS_ERROR\n");
|
$log->fatal ("[FATAL] Unable to get abs_path: $OS_ERROR\n");
|
||||||
exit 1;
|
exit 1;
|
||||||
};
|
}
|
||||||
|
|
||||||
# write pidfile
|
# write pidfile
|
||||||
my $pidfile = sprintf '%s/%s.pid', $piddir, basename $apath;
|
my $pidfile = sprintf '%s/%s.pid', $piddir, basename $apath;
|
||||||
@@ -152,7 +153,7 @@ our $RCONN;
|
|||||||
# run bot, at last
|
# run bot, at last
|
||||||
RunTelegramBot ();
|
RunTelegramBot ();
|
||||||
|
|
||||||
if (-f $pidfile) {
|
if (-e $pidfile) {
|
||||||
unlink $pidfile;
|
unlink $pidfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,11 +161,11 @@ exit 0;
|
|||||||
|
|
||||||
sub daemonize {
|
sub daemonize {
|
||||||
__fork ();
|
__fork ();
|
||||||
POSIX::setsid ();
|
setsid ();
|
||||||
open STDIN, '<', '/dev/null'; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen)
|
open STDIN, '<', File::Spec->devnull; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen)
|
||||||
# we handle STDOUT && STDERR via Log::Any::For::Std, so do not close them explicitly
|
# we handle STDOUT && STDERR via Log::Any::For::Std, so do not close them explicitly
|
||||||
#open STDOUT, '>', '/dev/null'; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen)
|
#open STDOUT, '>', File::Spec->devnull; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen)
|
||||||
#open STDERR, '>', '/dev/null'; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen)
|
#open STDERR, '>', File::Spec->devnull; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen)
|
||||||
__fork ();
|
__fork ();
|
||||||
umask 0;
|
umask 0;
|
||||||
return;
|
return;
|
||||||
@@ -188,7 +189,7 @@ sub __fork {
|
|||||||
sub __signal_handler {
|
sub __signal_handler {
|
||||||
$log->info ("[INFO] Caught a signal $OS_ERROR");
|
$log->info ("[INFO] Caught a signal $OS_ERROR");
|
||||||
|
|
||||||
if (-f $pidfile) {
|
if (-e $pidfile) {
|
||||||
unlink $pidfile;
|
unlink $pidfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
use open qw (:std :utf8);
|
use open qw (:std :utf8);
|
||||||
use English qw ( -no_match_vars );
|
use English qw ( -no_match_vars );
|
||||||
use lib qw (./lib ./vendor_perl ./vendor_perl/lib/perl5);
|
use lib qw (./lib ./vendor_perl ./vendor_perl/lib/perl5);
|
||||||
use JSON::XS;
|
use JSON::XS ();
|
||||||
|
|
||||||
use version; our $VERSION = qw (1.0);
|
use version; our $VERSION = qw (1.0);
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
package BotLib;
|
package BotLib;
|
||||||
# store here utility functions that are not protocol-specified
|
# store here utility functions that are not protocol-specified
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
use open qw (:std :utf8);
|
use open qw (:std :utf8);
|
||||||
use English qw ( -no_match_vars );
|
use English qw ( -no_match_vars );
|
||||||
|
|
||||||
use Carp qw (carp);
|
|
||||||
use Clone qw (clone);
|
use Clone qw (clone);
|
||||||
use Math::Random::Secure qw (irand);
|
use Math::Random::Secure qw (irand);
|
||||||
use Data::Dumper;
|
use Data::Dumper qw (Dumper);
|
||||||
use Log::Any qw ($log);
|
|
||||||
|
|
||||||
use BotLib::Conf qw (LoadConf);
|
use BotLib::Conf qw (LoadConf);
|
||||||
use BotLib::Admin qw (@ForbiddenMessageTypes GetForbiddenTypes AddForbiddenType
|
use BotLib::Admin qw (@ForbiddenMessageTypes GetForbiddenTypes AddForbiddenType
|
||||||
@@ -139,7 +137,7 @@ sub Command {
|
|||||||
my $pubsub = $main::REDIS->pubsub;
|
my $pubsub = $main::REDIS->pubsub;
|
||||||
|
|
||||||
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
||||||
$c->{'redis_router_channel'} => $rmsg
|
$c->{'redis_router_channel'} => $rmsg,
|
||||||
);
|
);
|
||||||
# Если команда не найдена, но строка подозрительно напоминает команду help
|
# Если команда не найдена, но строка подозрительно напоминает команду help
|
||||||
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
package BotLib::Admin;
|
package BotLib::Admin;
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
use open qw (:std :utf8);
|
use open qw (:std :utf8);
|
||||||
use English qw ( -no_match_vars );
|
use English qw ( -no_match_vars );
|
||||||
use Carp qw (cluck croak);
|
use CHI ();
|
||||||
use CHI;
|
use CHI::Driver::BerkeleyDB ();
|
||||||
use CHI::Driver::BerkeleyDB;
|
|
||||||
use BotLib::Conf qw (LoadConf);
|
use BotLib::Conf qw (LoadConf);
|
||||||
use BotLib::Util qw (utf2sha1);
|
use BotLib::Util qw (utf2sha1);
|
||||||
|
|
||||||
@@ -33,7 +32,7 @@ sub GetForbiddenTypes {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid)
|
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid),
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach (@ForbiddenMessageTypes) {
|
foreach (@ForbiddenMessageTypes) {
|
||||||
@@ -60,7 +59,7 @@ sub AddForbiddenType {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid)
|
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid),
|
||||||
);
|
);
|
||||||
|
|
||||||
$cache->set ($type, 1, 'never');
|
$cache->set ($type, 1, 'never');
|
||||||
@@ -74,7 +73,7 @@ sub DelForbiddenType {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid)
|
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid),
|
||||||
);
|
);
|
||||||
|
|
||||||
$cache->remove ($type);
|
$cache->remove ($type);
|
||||||
@@ -88,7 +87,7 @@ sub ListForbidden {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid)
|
namespace => __PACKAGE__ . '_' . 'censor' . '_' . utf2sha1 ($chatid),
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach (@ForbiddenMessageTypes) {
|
foreach (@ForbiddenMessageTypes) {
|
||||||
@@ -116,7 +115,7 @@ sub FortuneToggle (@) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'fortune'
|
namespace => __PACKAGE__ . '_' . 'fortune',
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($chatid);
|
my $state = $cache->get ($chatid);
|
||||||
@@ -152,7 +151,7 @@ sub FortuneStatus ($) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'fortune'
|
namespace => __PACKAGE__ . '_' . 'fortune',
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($chatid);
|
my $state = $cache->get ($chatid);
|
||||||
@@ -170,7 +169,7 @@ sub FortuneToggleList () {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'fortune'
|
namespace => __PACKAGE__ . '_' . 'fortune',
|
||||||
);
|
);
|
||||||
|
|
||||||
return $cache->get_keys ();
|
return $cache->get_keys ();
|
||||||
@@ -184,7 +183,7 @@ sub ChanMsgToggle (@) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'chan_msg'
|
namespace => __PACKAGE__ . '_' . 'chan_msg',
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($chatid);
|
my $state = $cache->get ($chatid);
|
||||||
@@ -227,7 +226,7 @@ sub ChanMsgStatus ($) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'chan_msg'
|
namespace => __PACKAGE__ . '_' . 'chan_msg',
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($chatid);
|
my $state = $cache->get ($chatid);
|
||||||
@@ -251,7 +250,7 @@ sub ChanMsgEnabled ($) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'chan_msg'
|
namespace => __PACKAGE__ . '_' . 'chan_msg',
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($chatid);
|
my $state = $cache->get ($chatid);
|
||||||
@@ -271,7 +270,7 @@ sub ChanMsgToggleList () {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'chan_msg'
|
namespace => __PACKAGE__ . '_' . 'chan_msg',
|
||||||
);
|
);
|
||||||
|
|
||||||
return $cache->get_keys ();
|
return $cache->get_keys ();
|
||||||
@@ -285,7 +284,7 @@ sub PluginStatus (@) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'plugin' . '_' . utf2sha1 ($chatid)
|
namespace => __PACKAGE__ . '_' . 'plugin' . '_' . utf2sha1 ($chatid),
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($plugin);
|
my $state = $cache->get ($plugin);
|
||||||
@@ -315,7 +314,7 @@ sub PluginEnabled (@) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'plugin' . '_' . utf2sha1 ($chatid)
|
namespace => __PACKAGE__ . '_' . 'plugin' . '_' . utf2sha1 ($chatid),
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($plugin);
|
my $state = $cache->get ($plugin);
|
||||||
@@ -336,7 +335,7 @@ sub PluginToggle (@) {
|
|||||||
my $cache = CHI->new (
|
my $cache = CHI->new (
|
||||||
driver => 'BerkeleyDB',
|
driver => 'BerkeleyDB',
|
||||||
root_dir => $cachedir,
|
root_dir => $cachedir,
|
||||||
namespace => __PACKAGE__ . '_' . 'plugin' . '_' . utf2sha1 ($chatid)
|
namespace => __PACKAGE__ . '_' . 'plugin' . '_' . utf2sha1 ($chatid),
|
||||||
);
|
);
|
||||||
|
|
||||||
my $state = $cache->get ($plugin);
|
my $state = $cache->get ($plugin);
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package BotLib::Conf;
|
package BotLib::Conf;
|
||||||
# loads config
|
# Загружает конфиг файл
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
use open qw (:std :utf8);
|
use open qw (:std :utf8);
|
||||||
use English qw ( -no_match_vars );
|
use English qw ( -no_match_vars );
|
||||||
use JSON::XS;
|
use JSON::XS ();
|
||||||
|
|
||||||
use version; our $VERSION = qw (1.0);
|
use version; our $VERSION = qw (1.0);
|
||||||
use Exporter qw (import);
|
use Exporter qw (import);
|
||||||
@@ -15,7 +15,12 @@ our @EXPORT_OK = qw (LoadConf);
|
|||||||
|
|
||||||
sub LoadConf {
|
sub LoadConf {
|
||||||
my $c = 'data/config.json';
|
my $c = 'data/config.json';
|
||||||
open my $CH, '<', $c or die "[FATAL] No conf at $c: $OS_ERROR\n";
|
my $CH;
|
||||||
|
|
||||||
|
unless (open $CH, '<', $c) {
|
||||||
|
die "[FATAL] No conf at $c: $OS_ERROR\n";
|
||||||
|
}
|
||||||
|
|
||||||
my $len = (stat $c) [7];
|
my $len = (stat $c) [7];
|
||||||
my $json;
|
my $json;
|
||||||
my $readlen = read $CH, $json, $len;
|
my $readlen = read $CH, $json, $len;
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
package BotLib::Util;
|
package BotLib::Util;
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
use open qw (:std :utf8);
|
use open qw (:std :utf8);
|
||||||
use English qw ( -no_match_vars );
|
use English qw ( -no_match_vars );
|
||||||
use Digest::SHA qw (sha1_base64);
|
use Digest::SHA qw (sha1_base64);
|
||||||
use Encode;
|
use Encode qw (encode_utf8);
|
||||||
use MIME::Base64;
|
use MIME::Base64 qw (encode_base64);
|
||||||
use Text::Fuzzy qw (distance_edits);
|
use Text::Fuzzy qw (distance_edits);
|
||||||
use URI::URL;
|
use URI::URL qw (url);
|
||||||
|
|
||||||
use version; our $VERSION = qw (1.0);
|
use version; our $VERSION = qw (1.0);
|
||||||
use Exporter qw (import);
|
use Exporter qw (import);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package RedisLib;
|
package RedisLib;
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
@@ -8,12 +8,12 @@ use open qw (:std :utf8);
|
|||||||
|
|
||||||
use Log::Any qw ($log);
|
use Log::Any qw ($log);
|
||||||
# Чтобы "уж точно" использовать hiredis-биндинги, загрузим этот модуль перед Mojo::Redis
|
# Чтобы "уж точно" использовать hiredis-биндинги, загрузим этот модуль перед Mojo::Redis
|
||||||
use Protocol::Redis::XS;
|
use Protocol::Redis::XS ();
|
||||||
use Mojo::Redis;
|
use Mojo::Redis ();
|
||||||
use Mojo::Redis::Connection;
|
use Mojo::Redis::Connection ();
|
||||||
|
|
||||||
use BotLib::Conf qw (LoadConf);
|
use BotLib::Conf qw (LoadConf);
|
||||||
use Teapot::Bot::Object::ChatPermissions;
|
use Teapot::Bot::Object::ChatPermissions ();
|
||||||
|
|
||||||
use version; our $VERSION = qw (1.0);
|
use version; our $VERSION = qw (1.0);
|
||||||
use Exporter qw (import);
|
use Exporter qw (import);
|
||||||
@@ -48,7 +48,7 @@ sub redis_parse_message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
};
|
}
|
||||||
|
|
||||||
sub redis_events_listener {
|
sub redis_events_listener {
|
||||||
$log->notice ('[NOTICE] Run redis events listener');
|
$log->notice ('[NOTICE] Run redis events listener');
|
||||||
@@ -66,7 +66,7 @@ sub redis_events_listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $r = Mojo::Redis->new (
|
my $r = Mojo::Redis->new (
|
||||||
sprintf 'redis://%s:%s/1', $c->{redis_server}, $c->{redis_port}
|
sprintf 'redis://%s:%s/1', $c->{redis_server}, $c->{redis_port},
|
||||||
);
|
);
|
||||||
|
|
||||||
$log->notice ('[NOTICE] New redis client registered, registering callbacks');
|
$log->notice ('[NOTICE] New redis client registered, registering callbacks');
|
||||||
@@ -85,11 +85,11 @@ sub redis_events_listener {
|
|||||||
$log->error ("[ERROR] Redis connection error: $error");
|
$log->error ("[ERROR] Redis connection error: $error");
|
||||||
$main::RCONN = undef;
|
$main::RCONN = undef;
|
||||||
return;
|
return;
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
# Subscribe to channels
|
# Subscribe to channels
|
||||||
@@ -102,7 +102,7 @@ sub redis_events_listener {
|
|||||||
$log->info ("[INFO] Subscribing to $channel");
|
$log->info ("[INFO] Subscribing to $channel");
|
||||||
|
|
||||||
$sub->{$channel} = $pubsub->json ($channel)->listen (
|
$sub->{$channel} = $pubsub->json ($channel)->listen (
|
||||||
$channel => sub { $rpm->(@_); }
|
$channel => sub { $rpm->(@_); },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package Teapot::Bot;
|
|||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
$Teapot::Bot::VERSION = '0.022';
|
$Teapot::Bot::VERSION = '0.022';
|
||||||
# ABSTRACT: A base class to make your very own Telegram bot
|
# ABSTRACT: A base class to make your very own Telegram bot
|
||||||
|
|
||||||
@@ -11,7 +13,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
|||||||
@@ -6,25 +6,27 @@ use Mojo::Base -base;
|
|||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
use English qw ( -no_match_vars );
|
use English qw ( -no_match_vars );
|
||||||
|
|
||||||
use Mojo::IOLoop;
|
use Mojo::IOLoop ();
|
||||||
use Mojo::UserAgent;
|
use Mojo::UserAgent ();
|
||||||
use Carp qw/croak cluck confess/; # use croak where we return error up to app that supply something wrong
|
use Carp qw/croak cluck confess/; # use croak where we return error up to app that supply something wrong
|
||||||
# use cluck where we want to say that something bad but non-critical happen in
|
# use cluck where we want to say that something bad but non-critical happen in
|
||||||
# lower layer (Mojo loop)
|
# lower layer (Mojo loop)
|
||||||
# use confess where we want to say that fatal error happen in lower layer (Mojo loop)
|
# use confess where we want to say that fatal error happen in lower layer (Mojo loop)
|
||||||
use Log::Any;
|
use Log::Any ();
|
||||||
use Data::Dumper;
|
use Data::Dumper qw (Dumper);
|
||||||
|
|
||||||
use Teapot::Bot::Object::Message;
|
use Teapot::Bot::Object::Message ();
|
||||||
use Teapot::Bot::Object::Poll;
|
use Teapot::Bot::Object::Poll ();
|
||||||
use Teapot::Bot::Object::PollAnswer;
|
use Teapot::Bot::Object::PollAnswer ();
|
||||||
use Teapot::Bot::Object::ChatMemberUpdated;
|
use Teapot::Bot::Object::ChatMemberUpdated ();
|
||||||
use Teapot::Bot::Object::User;
|
use Teapot::Bot::Object::User ();
|
||||||
use Teapot::Bot::Object::Chat;
|
use Teapot::Bot::Object::Chat ();
|
||||||
use Teapot::Bot::Object::ChatMember;
|
use Teapot::Bot::Object::ChatMember ();
|
||||||
use Teapot::Bot::Object::ChatInviteLink;
|
use Teapot::Bot::Object::ChatInviteLink ();
|
||||||
|
|
||||||
$Teapot::Bot::Brain::VERSION = '0.022';
|
$Teapot::Bot::Brain::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -706,7 +708,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -764,7 +766,7 @@ This method will add a sub to run every C<$seconds> seconds. Pass this method
|
|||||||
two parameters, the number of seconds between executions, and the coderef to
|
two parameters, the number of seconds between executions, and the coderef to
|
||||||
execute.
|
execute.
|
||||||
|
|
||||||
Your coderef will be passed the L<Teapot::Bot::Brain> object when it is
|
Your coderef will be passed the C<Teapot::Bot::Brain> object when it is
|
||||||
executed.
|
executed.
|
||||||
|
|
||||||
=head2 add_listener
|
=head2 add_listener
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package Teapot::Bot::Object::Animation;
|
package Teapot::Bot::Object::Animation;
|
||||||
# ABSTRACT: The base class for Telegram message 'Animation' type.
|
# ABSTRACT: The base class for Telegram message 'Animation' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
use Carp qw/croak/;
|
|
||||||
|
|
||||||
$Teapot::Bot::Object::Animation::VERSION = '0.022';
|
$Teapot::Bot::Object::Animation::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -31,7 +35,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -45,7 +49,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'Animation' type.
|
The base class for Telegram message 'Animation' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#animation> for details of the
|
See L<https://core.telegram.org/bots/api#animation> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Animation> objects.
|
attributes available for C<Teapot::Bot::Object::Animation> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::Audio;
|
package Teapot::Bot::Object::Audio;
|
||||||
# ABSTRACT: The base class for Telegram 'Audio' type objects
|
# ABSTRACT: The base class for Telegram 'Audio' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::Audio::VERSION = '0.022';
|
$Teapot::Bot::Object::Audio::VERSION = '0.022';
|
||||||
@@ -28,7 +33,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -42,7 +47,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Audio' type objects.
|
The base class for Telegram 'Audio' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#audio> for details of the
|
See L<https://core.telegram.org/bots/api#audio> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Audio> objects.
|
attributes available for C<Teapot::Bot::Object::Audio> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
package Teapot::Bot::Object::Base;
|
package Teapot::Bot::Object::Base;
|
||||||
# ABSTRACT: The base class for all Teapot::Bot::Object objects.
|
# ABSTRACT: The base class for all Teapot::Bot::Object objects.
|
||||||
|
|
||||||
use Mojo::Base -base;
|
use strict;
|
||||||
use List::Util qw/any/;
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Carp qw/croak cluck/;
|
use Carp qw/croak cluck/;
|
||||||
use Data::Dumper;
|
use Data::Dumper qw (Dumper);
|
||||||
use JSON::PP ();
|
use JSON::PP ();
|
||||||
|
use List::Util qw/any/;
|
||||||
|
|
||||||
|
use Mojo::Base -base;
|
||||||
|
|
||||||
$Teapot::Bot::Object::Base::VERSION = '0.022';
|
$Teapot::Bot::Object::Base::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -27,7 +33,6 @@ sub _field_is_array {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub array_of_arrays { return qw// } #override if needed
|
sub array_of_arrays { return qw// } #override if needed
|
||||||
sub _field_is_array_of_arrays {
|
sub _field_is_array_of_arrays {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
@@ -59,9 +64,6 @@ sub create_from_array {
|
|||||||
return $obj;
|
return $obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
cluck "Dumping class: " . Dumper ($class);
|
|
||||||
cluck "Dumping array: " . Dumper ($array);
|
|
||||||
|
|
||||||
# it's stub, return $obj
|
# it's stub, return $obj
|
||||||
return $obj;
|
return $obj;
|
||||||
}
|
}
|
||||||
@@ -163,7 +165,7 @@ sub as_hashref {
|
|||||||
if (ref($self->$field) ne 'ARRAY' && defined $self->$field);
|
if (ref($self->$field) ne 'ARRAY' && defined $self->$field);
|
||||||
# array types
|
# array types
|
||||||
$hash->{$field} = [
|
$hash->{$field} = [
|
||||||
map { $_->as_hashref } @{ $self->$field }
|
map { $_->as_hashref } @{ $self->$field },
|
||||||
] if (ref($self->$field) eq 'ARRAY');
|
] if (ref($self->$field) eq 'ARRAY');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -177,7 +179,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -193,7 +195,7 @@ The base class for all Telegram::Bot::Object objects.
|
|||||||
|
|
||||||
This class should not be instantiated itself. Instead, instantiate a sub-class.
|
This class should not be instantiated itself. Instead, instantiate a sub-class.
|
||||||
|
|
||||||
You should generally not need to instantiate objects of sub-classes of L<Teapot::Bot::Object::Base>,
|
You should generally not need to instantiate objects of sub-classes of C<Teapot::Bot::Object::Base>,
|
||||||
instead the appropriate objects will be created from an incoming request via
|
instead the appropriate objects will be created from an incoming request via
|
||||||
L<Teapot::Bot::Brain>.
|
L<Teapot::Bot::Brain>.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::CallbackGame;
|
package Teapot::Bot::Object::CallbackGame;
|
||||||
# ABSTRACT: The base class for Telegram message 'CallbackGame' type.
|
# ABSTRACT: The base class for Telegram message 'CallbackGame' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
$Teapot::Bot::Object::CallbackGame::VERSION = '0.022';
|
$Teapot::Bot::Object::CallbackGame::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -8,7 +13,7 @@ $Teapot::Bot::Object::CallbackGame::VERSION = '0.022';
|
|||||||
# "A placeholder, currently holds no information. Use BotFather to set up your game"
|
# "A placeholder, currently holds no information. Use BotFather to set up your game"
|
||||||
|
|
||||||
sub fields {
|
sub fields {
|
||||||
return { },
|
return { };
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
@@ -17,7 +22,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -31,7 +36,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'CallbackGame' type.
|
The base class for Telegram message 'CallbackGame' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#callbackgame> for details of the
|
See L<https://core.telegram.org/bots/api#callbackgame> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::CallbackGame> objects.
|
attributes available for C<Teapot::Bot::Object::CallbackGame> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
package Teapot::Bot::Object::Chat;
|
package Teapot::Bot::Object::Chat;
|
||||||
# ABSTRACT: The base class for Telegram 'Chat' type objects
|
# ABSTRACT: The base class for Telegram 'Chat' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::ChatPhoto;
|
use Teapot::Bot::Object::ChatPhoto ();
|
||||||
use Teapot::Bot::Object::Message;
|
use Teapot::Bot::Object::Message ();
|
||||||
use Teapot::Bot::Object::ChatPermissions;
|
use Teapot::Bot::Object::ChatPermissions ();
|
||||||
use Teapot::Bot::Object::ChatLocation;
|
use Teapot::Bot::Object::ChatLocation ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::Chat::VERSION = '0.022';
|
$Teapot::Bot::Object::Chat::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -64,7 +69,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -78,7 +83,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Chat' type objects.
|
The base class for Telegram 'Chat' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#chat> for details of the
|
See L<https://core.telegram.org/bots/api#chat> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Chat> objects.
|
attributes available for C<Teapot::Bot::Object::Chat> objects.
|
||||||
|
|
||||||
=head1 METHODS
|
=head1 METHODS
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::ChatInviteLink;
|
package Teapot::Bot::Object::ChatInviteLink;
|
||||||
# ABSTRACT: The base class for Telegram message 'ChatInviteLink' type.
|
# ABSTRACT: The base class for Telegram message 'ChatInviteLink' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::User;
|
use Teapot::Bot::Object::User ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::ChatInviteLink::VERSION = '0.022';
|
$Teapot::Bot::Object::ChatInviteLink::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -31,7 +36,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -45,7 +50,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'ChatInviteLink' type.
|
The base class for Telegram message 'ChatInviteLink' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#chatinvitelink> for details of the
|
See L<https://core.telegram.org/bots/api#chatinvitelink> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::ChatInviteLink> objects.
|
attributes available for C<Teapot::Bot::Object::ChatInviteLink> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::ChatLocation;
|
package Teapot::Bot::Object::ChatLocation;
|
||||||
# ABSTRACT: The base class for Telegram message 'ChatLocation' type.
|
# ABSTRACT: The base class for Telegram message 'ChatLocation' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::ChatLocation::VERSION = '0.022';
|
$Teapot::Bot::Object::ChatLocation::VERSION = '0.022';
|
||||||
@@ -21,7 +26,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -35,7 +40,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'ChatLocation' type.
|
The base class for Telegram message 'ChatLocation' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#chatlocation> for details of the
|
See L<https://core.telegram.org/bots/api#chatlocation> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::ChatLocation> objects.
|
attributes available for C<Teapot::Bot::Object::ChatLocation> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,17 @@
|
|||||||
package Teapot::Bot::Object::ChatMember;
|
package Teapot::Bot::Object::ChatMember;
|
||||||
# ABSTRACT: The base class for Telegram 'ChatMember' type objects
|
# ABSTRACT: The base class for Telegram 'ChatMember' type objects
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use strict;
|
||||||
use Teapot::Bot::Object::User;
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Carp qw(cluck);
|
use Carp qw(cluck);
|
||||||
|
|
||||||
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
use Teapot::Bot::Object::User ();
|
||||||
|
|
||||||
|
|
||||||
$Teapot::Bot::Object::ChatMember::VERSION = '0.022';
|
$Teapot::Bot::Object::ChatMember::VERSION = '0.022';
|
||||||
|
|
||||||
# ChatMemberOwner
|
# ChatMemberOwner
|
||||||
@@ -130,7 +137,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -144,7 +151,7 @@ version 0.022
|
|||||||
The base class for Telegram 'ChatMember' type objects.
|
The base class for Telegram 'ChatMember' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#chatmember> for details of the
|
See L<https://core.telegram.org/bots/api#chatmember> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::ChatMember> objects.
|
attributes available for C<Teapot::Bot::Object::ChatMember> objects.
|
||||||
|
|
||||||
=head1 METHODS
|
=head1 METHODS
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,17 @@
|
|||||||
package Teapot::Bot::Object::ChatMemberUpdated;
|
package Teapot::Bot::Object::ChatMemberUpdated;
|
||||||
# ABSTRACT: The base class for Telegram 'ChatMemberUpdated' type objects
|
# ABSTRACT: The base class for Telegram 'ChatMemberUpdated' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::Chat;
|
use Teapot::Bot::Object::Chat ();
|
||||||
use Teapot::Bot::Object::User;
|
use Teapot::Bot::Object::User ();
|
||||||
use Teapot::Bot::Object::ChatMember;
|
use Teapot::Bot::Object::ChatMember ();
|
||||||
use Teapot::Bot::Object::ChatInviteLink;
|
use Teapot::Bot::Object::ChatInviteLink ();
|
||||||
use Teapot::Bot::Object::Voice;
|
use Teapot::Bot::Object::Voice ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::ChatMemberUpdated::VERSION = '0.022';
|
$Teapot::Bot::Object::ChatMemberUpdated::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -27,7 +32,7 @@ sub fields {
|
|||||||
'scalar' => [qw/date text/],
|
'scalar' => [qw/date text/],
|
||||||
'Teapot::Bot::Object::ChatMember' => [qw/old_chat_member new_chat_member/],
|
'Teapot::Bot::Object::ChatMember' => [qw/old_chat_member new_chat_member/],
|
||||||
'Teapot::Bot::Object::Voice' => [qw/voice/],
|
'Teapot::Bot::Object::Voice' => [qw/voice/],
|
||||||
'Teapot::Bot::Object::ChatInviteLink' => [qw/invite_link/]
|
'Teapot::Bot::Object::ChatInviteLink' => [qw/invite_link/],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,7 +42,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -51,7 +56,7 @@ version 0.022
|
|||||||
The base class for Telegram 'ChatMemberUpdated' type objects.
|
The base class for Telegram 'ChatMemberUpdated' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#chatmemberupdated> for details of the
|
See L<https://core.telegram.org/bots/api#chatmemberupdated> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::ChatMemberUpdated> objects.
|
attributes available for C<Teapot::Bot::Object::ChatMemberUpdated> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
package Teapot::Bot::Object::ChatPermissions;
|
package Teapot::Bot::Object::ChatPermissions;
|
||||||
# ABSTRACT: The base class for Telegram 'ChatPermissions' type objects
|
# ABSTRACT: The base class for Telegram 'ChatPermissions' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Carp qw(carp);
|
use Carp qw(carp);
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Brain;
|
use Teapot::Bot::Brain ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::ChatPermissions::VERSION = '0.022';
|
$Teapot::Bot::Object::ChatPermissions::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -25,7 +31,7 @@ sub fields {
|
|||||||
return {
|
return {
|
||||||
'scalar' => [qw/can_send_messages can_send_media_messages can_send_polls
|
'scalar' => [qw/can_send_messages can_send_media_messages can_send_polls
|
||||||
can_send_other_messages can_add_web_page_previews can_change_info
|
can_send_other_messages can_add_web_page_previews can_change_info
|
||||||
can_invite_users can_pin_messages/]
|
can_invite_users can_pin_messages/],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +90,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -98,7 +104,7 @@ version 0.022
|
|||||||
The base class for Telegram 'ChatPermissions' type objects.
|
The base class for Telegram 'ChatPermissions' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#chatpermissions> for details of the
|
See L<https://core.telegram.org/bots/api#chatpermissions> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::ChatPermissions> objects.
|
attributes available for C<Teapot::Bot::Object::ChatPermissions> objects.
|
||||||
|
|
||||||
=head1 METHODS
|
=head1 METHODS
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::ChatPhoto;
|
package Teapot::Bot::Object::ChatPhoto;
|
||||||
# ABSTRACT: The base class for Telegram 'ChatPhoto' type objects
|
# ABSTRACT: The base class for Telegram 'ChatPhoto' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::ChatPhoto::VERSION = '0.022';
|
$Teapot::Bot::Object::ChatPhoto::VERSION = '0.022';
|
||||||
@@ -22,7 +27,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -36,7 +41,7 @@ version 0.022
|
|||||||
The base class for Telegram 'ChatPhoto' type objects.
|
The base class for Telegram 'ChatPhoto' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#chatphoto> for details of the
|
See L<https://core.telegram.org/bots/api#chatphoto> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::ChatPhoto> objects.
|
attributes available for C<Teapot::Bot::Object::ChatPhoto> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::Contact;
|
package Teapot::Bot::Object::Contact;
|
||||||
# ABSTRACT: The base class for Telegram 'Contact' objects.
|
# ABSTRACT: The base class for Telegram 'Contact' objects.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::Contact::VERSION = '0.022';
|
$Teapot::Bot::Object::Contact::VERSION = '0.022';
|
||||||
@@ -23,7 +28,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -37,7 +42,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Contact' objects.
|
The base class for Telegram 'Contact' objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#contact> for details of the
|
See L<https://core.telegram.org/bots/api#contact> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Contact> objects.
|
attributes available for C<Teapot::Bot::Object::Contact> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::Dice;
|
package Teapot::Bot::Object::Dice;
|
||||||
# ABSTRACT: The base class for Telegram message 'Dice' type.
|
# ABSTRACT: The base class for Telegram message 'Dice' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::Dice::VERSION = '0.022';
|
$Teapot::Bot::Object::Dice::VERSION = '0.022';
|
||||||
@@ -18,7 +23,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -32,7 +37,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'Dice' type.
|
The base class for Telegram message 'Dice' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#dice> for details of the
|
See L<https://core.telegram.org/bots/api#dice> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::dice> objects.
|
attributes available for C<Teapot::Bot::Object::dice> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package Teapot::Bot::Object::Document;
|
package Teapot::Bot::Object::Document;
|
||||||
# ABSTRACT: The base class for Telegram 'Document' objects
|
# ABSTRACT: The base class for Telegram 'Document' objects
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::Document::VERSION = '0.022';
|
$Teapot::Bot::Object::Document::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -17,7 +21,7 @@ has 'file_size';
|
|||||||
sub fields {
|
sub fields {
|
||||||
return {
|
return {
|
||||||
scalar => [qw/file_id file_unique_id file_name mime_type file_size/],
|
scalar => [qw/file_id file_unique_id file_name mime_type file_size/],
|
||||||
'Teapot::Bot::Object::PhotoSize' => [qw/thumb/]
|
'Teapot::Bot::Object::PhotoSize' => [qw/thumb/],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,7 +31,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -41,7 +45,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Document' objects.
|
The base class for Telegram 'Document' objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#document> for details of the
|
See L<https://core.telegram.org/bots/api#document> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Document> objects.
|
attributes available for C<Teapot::Bot::Object::Document> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::EncryptedCredentials;
|
package Teapot::Bot::Object::EncryptedCredentials;
|
||||||
# ABSTRACT: The base class for Telegram 'EncryptedCredentials' type objects
|
# ABSTRACT: The base class for Telegram 'EncryptedCredentials' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::EncryptedCredentials::VERSION = '0.022';
|
$Teapot::Bot::Object::EncryptedCredentials::VERSION = '0.022';
|
||||||
@@ -19,7 +24,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -33,7 +38,7 @@ version 0.022
|
|||||||
The base class for Telegram 'EncryptedCredentials' type objects.
|
The base class for Telegram 'EncryptedCredentials' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#encryptedcredentials> for details of the
|
See L<https://core.telegram.org/bots/api#encryptedcredentials> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::EncryptedCredentials> objects.
|
attributes available for C<Teapot::Bot::Object::EncryptedCredentials> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::EncryptedPassportElement;
|
package Teapot::Bot::Object::EncryptedPassportElement;
|
||||||
# ABSTRACT: The base class for Telegram 'EncryptedPassportElement' type objects
|
# ABSTRACT: The base class for Telegram 'EncryptedPassportElement' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::EncryptedPassportElement::VERSION = '0.022';
|
$Teapot::Bot::Object::EncryptedPassportElement::VERSION = '0.022';
|
||||||
@@ -25,7 +30,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -39,7 +44,7 @@ version 0.022
|
|||||||
The base class for Telegram 'EncryptedPassportElement' type objects.
|
The base class for Telegram 'EncryptedPassportElement' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#encryptedpassportelement> for details of the
|
See L<https://core.telegram.org/bots/api#encryptedpassportelement> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::EncryptedPassportElement> objects.
|
attributes available for C<Teapot::Bot::Object::EncryptedPassportElement> objects.
|
||||||
|
|
||||||
Note that this type is not yet fully implemented.
|
Note that this type is not yet fully implemented.
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package Teapot::Bot::Object::Game;
|
package Teapot::Bot::Object::Game;
|
||||||
# ABSTRACT: The base class for Telegram message 'Game' type.
|
# ABSTRACT: The base class for Telegram message 'Game' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
use Teapot::Bot::Object::Animation;
|
use Teapot::Bot::Object::Animation ();
|
||||||
use Teapot::Bot::Object::MessageEntity;
|
use Teapot::Bot::Object::MessageEntity ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::Game::VERSION = '0.022';
|
$Teapot::Bot::Object::Game::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -33,7 +37,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -47,7 +51,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'Game' type.
|
The base class for Telegram message 'Game' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#game> for details of the
|
See L<https://core.telegram.org/bots/api#game> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Game> objects.
|
attributes available for C<Teapot::Bot::Object::Game> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
package Teapot::Bot::Object::InlineKeyboardButton;
|
package Teapot::Bot::Object::InlineKeyboardButton;
|
||||||
# ABSTRACT: The base class for Telegram 'InlineKeyboardButton' type objects
|
# ABSTRACT: The base class for Telegram 'InlineKeyboardButton' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::LoginUrl;
|
use Teapot::Bot::Object::LoginUrl ();
|
||||||
use Teapot::Bot::Object::CallbackGame;
|
use Teapot::Bot::Object::CallbackGame ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::InlineKeyboardButton::VERSION = '0.022';
|
$Teapot::Bot::Object::InlineKeyboardButton::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -30,7 +35,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -44,7 +49,7 @@ version 0.022
|
|||||||
The base class for Telegram 'InlineKeyboardButton' type objects.
|
The base class for Telegram 'InlineKeyboardButton' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#inlinekeyboardbutton> for details of the
|
See L<https://core.telegram.org/bots/api#inlinekeyboardbutton> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::InlineKeyboardButton> objects.
|
attributes available for C<Teapot::Bot::Object::InlineKeyboardButton> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::InlineKeyboardMarkup;
|
package Teapot::Bot::Object::InlineKeyboardMarkup;
|
||||||
# ABSTRACT: The base class for Telegram 'InlineKeyboardMarkup' type objects
|
# ABSTRACT: The base class for Telegram 'InlineKeyboardMarkup' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::InlineKeyboardButton;
|
use Teapot::Bot::Object::InlineKeyboardButton ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::InlineKeyboardMarkup::VERSION = '0.022';
|
$Teapot::Bot::Object::InlineKeyboardMarkup::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -22,7 +27,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -36,7 +41,7 @@ version 0.022
|
|||||||
The base class for Telegram 'InlineKeyboardMarkup' type objects.
|
The base class for Telegram 'InlineKeyboardMarkup' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#inlinekeyboardmarkup> for details of the
|
See L<https://core.telegram.org/bots/api#inlinekeyboardmarkup> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::InlineKeyboardMarkup> objects.
|
attributes available for C<Teapot::Bot::Object::InlineKeyboardMarkup> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::Invoice;
|
package Teapot::Bot::Object::Invoice;
|
||||||
# ABSTRACT: The base class for Telegram 'Invoice' type objects
|
# ABSTRACT: The base class for Telegram 'Invoice' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::Invoice::VERSION = '0.022';
|
$Teapot::Bot::Object::Invoice::VERSION = '0.022';
|
||||||
@@ -21,7 +26,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -35,7 +40,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Invoice' type objects.
|
The base class for Telegram 'Invoice' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#invoice> for details of the
|
See L<https://core.telegram.org/bots/api#invoice> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Invoice> objects.
|
attributes available for C<Teapot::Bot::Object::Invoice> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::Location;
|
package Teapot::Bot::Object::Location;
|
||||||
# ABSTRACT: The base class for Telegram message 'Location' type.
|
# ABSTRACT: The base class for Telegram message 'Location' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::Location::VERSION = '0.022';
|
$Teapot::Bot::Object::Location::VERSION = '0.022';
|
||||||
@@ -22,7 +27,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -36,7 +41,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'Location' type.
|
The base class for Telegram message 'Location' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#location> for details of the
|
See L<https://core.telegram.org/bots/api#location> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Location> objects.
|
attributes available for C<Teapot::Bot::Object::Location> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::LoginUrl;
|
package Teapot::Bot::Object::LoginUrl;
|
||||||
# ABSTRACT: The base class for Telegram 'LoginUrl' type objects
|
# ABSTRACT: The base class for Telegram 'LoginUrl' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::LoginUrl::VERSION = '0.022';
|
$Teapot::Bot::Object::LoginUrl::VERSION = '0.022';
|
||||||
@@ -20,7 +25,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -34,7 +39,7 @@ version 0.022
|
|||||||
The base class for Telegram 'LoginUrl' type objects.
|
The base class for Telegram 'LoginUrl' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#loginurl> for details of the
|
See L<https://core.telegram.org/bots/api#loginurl> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::LoginUrl> objects.
|
attributes available for C<Teapot::Bot::Object::LoginUrl> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,42 +1,44 @@
|
|||||||
package Teapot::Bot::Object::Message;
|
package Teapot::Bot::Object::Message;
|
||||||
# ABSTRACT: The base class for the Telegram type "Message".
|
# ABSTRACT: The base class for the Telegram type "Message".
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
use Teapot::Bot::Object::User;
|
use Teapot::Bot::Object::User ();
|
||||||
use Teapot::Bot::Object::Chat;
|
use Teapot::Bot::Object::Chat ();
|
||||||
use Teapot::Bot::Object::ChatMember;
|
use Teapot::Bot::Object::ChatMember ();
|
||||||
use Teapot::Bot::Object::ChatPermissions;
|
use Teapot::Bot::Object::ChatPermissions ();
|
||||||
use Teapot::Bot::Object::MessageEntity;
|
use Teapot::Bot::Object::MessageEntity ();
|
||||||
use Teapot::Bot::Object::Audio;
|
use Teapot::Bot::Object::Audio ();
|
||||||
use Teapot::Bot::Object::Document;
|
use Teapot::Bot::Object::Document ();
|
||||||
use Teapot::Bot::Object::Animation;
|
use Teapot::Bot::Object::Animation ();
|
||||||
use Teapot::Bot::Object::Game;
|
use Teapot::Bot::Object::Game ();
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
use Teapot::Bot::Object::Sticker;
|
use Teapot::Bot::Object::Sticker ();
|
||||||
use Teapot::Bot::Object::Video;
|
use Teapot::Bot::Object::Video ();
|
||||||
use Teapot::Bot::Object::Voice;
|
use Teapot::Bot::Object::Voice ();
|
||||||
use Teapot::Bot::Object::VideoNote;
|
use Teapot::Bot::Object::VideoNote ();
|
||||||
use Teapot::Bot::Object::Contact;
|
use Teapot::Bot::Object::Contact ();
|
||||||
use Teapot::Bot::Object::Location;
|
use Teapot::Bot::Object::Location ();
|
||||||
use Teapot::Bot::Object::Poll;
|
use Teapot::Bot::Object::Poll ();
|
||||||
use Teapot::Bot::Object::Location;
|
use Teapot::Bot::Object::Location ();
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
use Teapot::Bot::Object::Invoice;
|
use Teapot::Bot::Object::Invoice ();
|
||||||
use Teapot::Bot::Object::Venue;
|
use Teapot::Bot::Object::Venue ();
|
||||||
use Teapot::Bot::Object::SuccessfulPayment;
|
use Teapot::Bot::Object::SuccessfulPayment ();
|
||||||
use Teapot::Bot::Object::PassportData;
|
use Teapot::Bot::Object::PassportData ();
|
||||||
use Teapot::Bot::Object::InlineKeyboardMarkup;
|
use Teapot::Bot::Object::InlineKeyboardMarkup ();
|
||||||
use Teapot::Bot::Object::ProximityAlertTriggered;
|
use Teapot::Bot::Object::ProximityAlertTriggered ();
|
||||||
use Teapot::Bot::Object::Dice;
|
use Teapot::Bot::Object::Dice ();
|
||||||
use Teapot::Bot::Object::MessageAutoDeleteTimerChanged;
|
use Teapot::Bot::Object::MessageAutoDeleteTimerChanged ();
|
||||||
use Teapot::Bot::Object::VoiceChatScheduled;
|
use Teapot::Bot::Object::VoiceChatScheduled ();
|
||||||
use Teapot::Bot::Object::VoiceChatStarted;
|
use Teapot::Bot::Object::VoiceChatStarted ();
|
||||||
use Teapot::Bot::Object::VoiceChatEnded;
|
use Teapot::Bot::Object::VoiceChatEnded ();
|
||||||
use Teapot::Bot::Object::VoiceChatParticipantsInvited;
|
use Teapot::Bot::Object::VoiceChatParticipantsInvited ();
|
||||||
|
|
||||||
use Data::Dumper;
|
|
||||||
use Carp qw(cluck);
|
|
||||||
|
|
||||||
$Teapot::Bot::Object::Message::VERSION = '0.022';
|
$Teapot::Bot::Object::Message::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -200,7 +202,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -214,7 +216,7 @@ version 0.022
|
|||||||
The base class for the Telegram type "Message".
|
The base class for the Telegram type "Message".
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#message> for details of the
|
See L<https://core.telegram.org/bots/api#message> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Message> objects.
|
attributes available for C<Teapot::Bot::Object::Message> objects.
|
||||||
|
|
||||||
=head1 METHODS
|
=head1 METHODS
|
||||||
|
|
||||||
@@ -222,7 +224,7 @@ attributes available for L<Teapot::Bot::Object::Message> objects.
|
|||||||
|
|
||||||
A convenience method to reply to a message with text.
|
A convenience method to reply to a message with text.
|
||||||
|
|
||||||
Will return the L<Teapot::Bot::Object::Message> object representing the message
|
Will return the C<Teapot::Bot::Object::Message> object representing the message
|
||||||
sent.
|
sent.
|
||||||
|
|
||||||
=head2 typing
|
=head2 typing
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::MessageAutoDeleteTimerChanged;
|
package Teapot::Bot::Object::MessageAutoDeleteTimerChanged;
|
||||||
# ABSTRACT: The base class for Telegram 'MessageAutoDeleteTimerChanged' type objects
|
# ABSTRACT: The base class for Telegram 'MessageAutoDeleteTimerChanged' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::MessageAutoDeleteTimerChanged::VERSION = '0.022';
|
$Teapot::Bot::Object::MessageAutoDeleteTimerChanged::VERSION = '0.022';
|
||||||
@@ -19,7 +24,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -33,7 +38,7 @@ version 0.022
|
|||||||
The base class for Telegram 'MessageAutoDeleteTimerChanged' type objects.
|
The base class for Telegram 'MessageAutoDeleteTimerChanged' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#messageautodeletetimerchanged> for details of the
|
See L<https://core.telegram.org/bots/api#messageautodeletetimerchanged> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::MessageAutoDeleteTimerChanged> objects.
|
attributes available for C<Teapot::Bot::Object::MessageAutoDeleteTimerChanged> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::MessageEntity;
|
package Teapot::Bot::Object::MessageEntity;
|
||||||
# ABSTRACT: The base class for Telegram 'MessageEntity' type objects
|
# ABSTRACT: The base class for Telegram 'MessageEntity' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::User;
|
use Teapot::Bot::Object::User ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::MessageEntity::VERSION = '0.022';
|
$Teapot::Bot::Object::MessageEntity::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -26,7 +31,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -40,7 +45,7 @@ version 0.022
|
|||||||
The base class for Telegram 'MessageEntity' type objects.
|
The base class for Telegram 'MessageEntity' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#messageentity> for details of the
|
See L<https://core.telegram.org/bots/api#messageentity> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::MessageEntity> objects.
|
attributes available for C<Teapot::Bot::Object::MessageEntity> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
package Teapot::Bot::Object::PassportData;
|
package Teapot::Bot::Object::PassportData;
|
||||||
# ABSTRACT: The base class for Telegram 'PassportData' type objects
|
# ABSTRACT: The base class for Telegram 'PassportData' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::EncryptedPassportElement;
|
use Teapot::Bot::Object::EncryptedPassportElement ();
|
||||||
use Teapot::Bot::Object::EncryptedCredentials;
|
use Teapot::Bot::Object::EncryptedCredentials ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::PassportData::VERSION = '0.022';
|
$Teapot::Bot::Object::PassportData::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -27,7 +32,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -41,7 +46,7 @@ version 0.022
|
|||||||
The base class for Telegram 'PassportData' type objects.
|
The base class for Telegram 'PassportData' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#passportdata> for details of the
|
See L<https://core.telegram.org/bots/api#passportdata> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::PassportData> objects.
|
attributes available for C<Teapot::Bot::Object::PassportData> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
package Teapot::Bot::Object::PhotoSize;
|
package Teapot::Bot::Object::PhotoSize;
|
||||||
# ABSTRACT: The base class for Telegram message 'PhotoSize' type.
|
# ABSTRACT: The base class for Telegram message 'PhotoSize' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Carp qw/croak/;
|
|
||||||
|
|
||||||
$Teapot::Bot::Object::PhotoSize::VERSION = '0.022';
|
$Teapot::Bot::Object::PhotoSize::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -22,7 +26,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -36,7 +40,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'PhotoSize' type.
|
The base class for Telegram message 'PhotoSize' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#photosize> for details of the
|
See L<https://core.telegram.org/bots/api#photosize> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::PhotoSize> objects.
|
attributes available for C<Teapot::Bot::Object::PhotoSize> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::Poll;
|
package Teapot::Bot::Object::Poll;
|
||||||
# ABSTRACT: The base class for Telegram 'Poll' type objects
|
# ABSTRACT: The base class for Telegram 'Poll' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::PollOption;
|
use Teapot::Bot::Object::PollOption ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::Poll::VERSION = '0.022';
|
$Teapot::Bot::Object::Poll::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -39,7 +44,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -53,7 +58,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Poll' type objects
|
The base class for Telegram 'Poll' type objects
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#poll> for details of the
|
See L<https://core.telegram.org/bots/api#poll> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Poll> objects.
|
attributes available for C<Teapot::Bot::Object::Poll> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::PollAnswer;
|
package Teapot::Bot::Object::PollAnswer;
|
||||||
# ABSTRACT: The base class for Telegram 'PollOption' type objects
|
# ABSTRACT: The base class for Telegram 'PollOption' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::PollAnswer::VERSION = '0.022';
|
$Teapot::Bot::Object::PollAnswer::VERSION = '0.022';
|
||||||
@@ -26,7 +31,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -40,7 +45,7 @@ version 0.022
|
|||||||
The base class for Telegram 'PollAnswer' type objects.
|
The base class for Telegram 'PollAnswer' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#pollanswer> for details of the
|
See L<https://core.telegram.org/bots/api#pollanswer> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::PollAnswer> objects.
|
attributes available for C<Teapot::Bot::Object::PollAnswer> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::PollOption;
|
package Teapot::Bot::Object::PollOption;
|
||||||
# ABSTRACT: The base class for Telegram 'PollOption' type objects
|
# ABSTRACT: The base class for Telegram 'PollOption' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::PollOption::VERSION = '0.022';
|
$Teapot::Bot::Object::PollOption::VERSION = '0.022';
|
||||||
@@ -18,7 +23,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -32,7 +37,7 @@ version 0.022
|
|||||||
The base class for Telegram 'PollOption' type objects.
|
The base class for Telegram 'PollOption' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#polloption> for details of the
|
See L<https://core.telegram.org/bots/api#polloption> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::PollOption> objects.
|
attributes available for C<Teapot::Bot::Object::PollOption> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::ProximityAlertTriggered;
|
package Teapot::Bot::Object::ProximityAlertTriggered;
|
||||||
# ABSTRACT: The base class for Telegram message 'ProximityAlertTriggered' type.
|
# ABSTRACT: The base class for Telegram message 'ProximityAlertTriggered' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::ProximityAlertTriggered::VERSION = '0.022';
|
$Teapot::Bot::Object::ProximityAlertTriggered::VERSION = '0.022';
|
||||||
@@ -22,7 +27,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -36,7 +41,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'ProximityAlertTriggered' type.
|
The base class for Telegram message 'ProximityAlertTriggered' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#proximityalerttriggered> for details of the
|
See L<https://core.telegram.org/bots/api#proximityalerttriggered> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::ProximityAlertTriggered> objects.
|
attributes available for C<Teapot::Bot::Object::ProximityAlertTriggered> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::Sticker;
|
package Teapot::Bot::Object::Sticker;
|
||||||
# ABSTRACT: The base class for Telegram message 'Sticker' type.
|
# ABSTRACT: The base class for Telegram message 'Sticker' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::Sticker::VERSION = '0.022';
|
$Teapot::Bot::Object::Sticker::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -28,7 +33,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -42,7 +47,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'Sticker' type.
|
The base class for Telegram message 'Sticker' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#sticker> for details of the
|
See L<https://core.telegram.org/bots/api#sticker> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Sticker> objects.
|
attributes available for C<Teapot::Bot::Object::Sticker> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::SuccessfulPayment;
|
package Teapot::Bot::Object::SuccessfulPayment;
|
||||||
# ABSTRACT: The base class for Telegram 'SuccessfulPayment' type objects
|
# ABSTRACT: The base class for Telegram 'SuccessfulPayment' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
# use Teapot::Bot::Object::OrderInfo;
|
# use Teapot::Bot::Object::OrderInfo;
|
||||||
|
|
||||||
@@ -28,7 +33,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -42,7 +47,7 @@ version 0.022
|
|||||||
The base class for Telegram 'SuccessfulPayment' type objects.
|
The base class for Telegram 'SuccessfulPayment' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#successfulpayment> for details of the
|
See L<https://core.telegram.org/bots/api#successfulpayment> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::SuccessfulPayment> objects.
|
attributes available for C<Teapot::Bot::Object::SuccessfulPayment> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
package Teapot::Bot::Object::User;
|
package Teapot::Bot::Object::User;
|
||||||
# ABSTRACT: The base class for Telegram message 'User' type.
|
# ABSTRACT: The base class for Telegram message 'User' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
@@ -19,7 +23,7 @@ has 'supports_inline_queries'; # optional, only for getMe() method
|
|||||||
sub fields {
|
sub fields {
|
||||||
return {
|
return {
|
||||||
scalar => [qw/id is_bot first_name last_name username language_code can_join_groups
|
scalar => [qw/id is_bot first_name last_name username language_code can_join_groups
|
||||||
can_read_all_group_messages supports_inline_queries/]
|
can_read_all_group_messages supports_inline_queries/],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,7 +33,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -43,7 +47,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'User' type.
|
The base class for Telegram message 'User' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#user> for details of the
|
See L<https://core.telegram.org/bots/api#user> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::User> objects.
|
attributes available for C<Teapot::Bot::Object::User> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::Venue;
|
package Teapot::Bot::Object::Venue;
|
||||||
# ABSTRACT: The base class for Telegram 'LoginUrl' type objects
|
# ABSTRACT: The base class for Telegram 'LoginUrl' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::Location;
|
use Teapot::Bot::Object::Location ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::Venue::VERSION = '0.022';
|
$Teapot::Bot::Object::Venue::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -17,7 +22,7 @@ has 'google_place_type';
|
|||||||
sub fields {
|
sub fields {
|
||||||
return {
|
return {
|
||||||
'scalar' => [qw/title address foursquare_id foursquare_type google_place_id google_place_type/],
|
'scalar' => [qw/title address foursquare_id foursquare_type google_place_id google_place_type/],
|
||||||
'Teapot::Bot::Object::Location' => [qw/location/]
|
'Teapot::Bot::Object::Location' => [qw/location/],
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -28,7 +33,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -42,7 +47,7 @@ version 0.022
|
|||||||
The base class for Telegram 'LoginUrl' type objects.
|
The base class for Telegram 'LoginUrl' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#venue> for details of the
|
See L<https://core.telegram.org/bots/api#venue> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Venue> objects.
|
attributes available for C<Teapot::Bot::Object::Venue> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::Video;
|
package Teapot::Bot::Object::Video;
|
||||||
# ABSTRACT: The base class for Telegram 'Video' object.
|
# ABSTRACT: The base class for Telegram 'Video' object.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::Video::VERSION = '0.022';
|
$Teapot::Bot::Object::Video::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -20,7 +25,7 @@ sub fields {
|
|||||||
return {
|
return {
|
||||||
scalar => [qw/file_id file_unique_id width height duration file_name mime_type
|
scalar => [qw/file_id file_unique_id width height duration file_name mime_type
|
||||||
file_size/],
|
file_size/],
|
||||||
'Teapot::Bot::Object::PhotoSize' => [qw/thumb/]
|
'Teapot::Bot::Object::PhotoSize' => [qw/thumb/],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,7 +35,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -44,7 +49,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Video' object.
|
The base class for Telegram 'Video' object.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#video> for details of the
|
See L<https://core.telegram.org/bots/api#video> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Video> objects.
|
attributes available for C<Teapot::Bot::Object::Video> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package Teapot::Bot::Object::VideoNote;
|
package Teapot::Bot::Object::VideoNote;
|
||||||
# ABSTRACT: The base class for Telegram 'VideoNote' type objects
|
# ABSTRACT: The base class for Telegram 'VideoNote' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::PhotoSize;
|
use Teapot::Bot::Object::PhotoSize ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::VideoNote::VERSION = '0.022';
|
$Teapot::Bot::Object::VideoNote::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -28,7 +32,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -42,7 +46,7 @@ version 0.022
|
|||||||
The base class for Telegram 'VideoNote' type object.
|
The base class for Telegram 'VideoNote' type object.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#videonote> for details of the
|
See L<https://core.telegram.org/bots/api#videonote> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::VideoNote> objects.
|
attributes available for C<Teapot::Bot::Object::VideoNote> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::Voice;
|
package Teapot::Bot::Object::Voice;
|
||||||
# ABSTRACT: The base class for Telegram 'Voice' type objects
|
# ABSTRACT: The base class for Telegram 'Voice' type objects
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::Voice::VERSION = '0.022';
|
$Teapot::Bot::Object::Voice::VERSION = '0.022';
|
||||||
@@ -21,7 +26,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -35,7 +40,7 @@ version 0.022
|
|||||||
The base class for Telegram 'Voice' type objects.
|
The base class for Telegram 'Voice' type objects.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#voice> for details of the
|
See L<https://core.telegram.org/bots/api#voice> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::Voice> objects.
|
attributes available for C<Teapot::Bot::Object::Voice> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::VoiceChatEnded;
|
package Teapot::Bot::Object::VoiceChatEnded;
|
||||||
# ABSTRACT: The base class for Telegram message 'VoiceChatEnded' type.
|
# ABSTRACT: The base class for Telegram message 'VoiceChatEnded' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::VoiceChatEnded::VERSION = '0.022';
|
$Teapot::Bot::Object::VoiceChatEnded::VERSION = '0.022';
|
||||||
@@ -18,7 +23,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -32,7 +37,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'VoiceChatEnded' type.
|
The base class for Telegram message 'VoiceChatEnded' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#voicechatended> for details of the
|
See L<https://core.telegram.org/bots/api#voicechatended> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::VoiceChatEnded> objects.
|
attributes available for C<Teapot::Bot::Object::VoiceChatEnded> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
package Teapot::Bot::Object::VoiceChatParticipantsInvited;
|
package Teapot::Bot::Object::VoiceChatParticipantsInvited;
|
||||||
# ABSTRACT: The base class for Telegram message 'VoiceChatParticipantsInvited' type.
|
# ABSTRACT: The base class for Telegram message 'VoiceChatParticipantsInvited' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
use Teapot::Bot::Object::User;
|
use Teapot::Bot::Object::User ();
|
||||||
|
|
||||||
$Teapot::Bot::Object::VoiceChatParticipantsInvited::VERSION = '0.022';
|
$Teapot::Bot::Object::VoiceChatParticipantsInvited::VERSION = '0.022';
|
||||||
|
|
||||||
@@ -23,7 +28,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -37,7 +42,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'VoiceChatParticipantsInvited' type.
|
The base class for Telegram message 'VoiceChatParticipantsInvited' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#voicechatparticipantsinvited> for details of the
|
See L<https://core.telegram.org/bots/api#voicechatparticipantsinvited> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::VoiceChatParticipantsInvited> objects.
|
attributes available for C<Teapot::Bot::Object::VoiceChatParticipantsInvited> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::VoiceChatScheduled;
|
package Teapot::Bot::Object::VoiceChatScheduled;
|
||||||
# ABSTRACT: The base class for Telegram message 'VoiceChatEnded' type.
|
# ABSTRACT: The base class for Telegram message 'VoiceChatEnded' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::VoiceChatScheduled::VERSION = '0.022';
|
$Teapot::Bot::Object::VoiceChatScheduled::VERSION = '0.022';
|
||||||
@@ -18,7 +23,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -32,7 +37,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'VoiceChatScheduled' type.
|
The base class for Telegram message 'VoiceChatScheduled' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#voicechatscheduled> for details of the
|
See L<https://core.telegram.org/bots/api#voicechatscheduled> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::VoiceChatScheduled> objects.
|
attributes available for C<Teapot::Bot::Object::VoiceChatScheduled> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package Teapot::Bot::Object::VoiceChatStarted;
|
package Teapot::Bot::Object::VoiceChatStarted;
|
||||||
# ABSTRACT: The base class for Telegram message 'VoiceChatStarted' type.
|
# ABSTRACT: The base class for Telegram message 'VoiceChatStarted' type.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
|
use utf8;
|
||||||
|
|
||||||
use Mojo::Base 'Teapot::Bot::Object::Base';
|
use Mojo::Base 'Teapot::Bot::Object::Base';
|
||||||
|
|
||||||
$Teapot::Bot::Object::VoiceChatStarted::VERSION = '0.022';
|
$Teapot::Bot::Object::VoiceChatStarted::VERSION = '0.022';
|
||||||
@@ -18,7 +23,7 @@ __END__
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
||||||
=encoding UTF-8
|
=encoding utf8
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@@ -32,7 +37,7 @@ version 0.022
|
|||||||
The base class for Telegram message 'VoiceChatStarted' type.
|
The base class for Telegram message 'VoiceChatStarted' type.
|
||||||
|
|
||||||
See L<https://core.telegram.org/bots/api#voicechatstarted> for details of the
|
See L<https://core.telegram.org/bots/api#voicechatstarted> for details of the
|
||||||
attributes available for L<Teapot::Bot::Object::VoiceChatStarted> objects.
|
attributes available for C<Teapot::Bot::Object::VoiceChatStarted> objects.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
package TelegramBot;
|
package TelegramBot;
|
||||||
# main bot gears are here
|
# main bot gears are here
|
||||||
|
|
||||||
use 5.018;
|
use 5.018; ## no critic (ProhibitImplicitImport)
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
use open qw (:std :utf8);
|
use open qw (:std :utf8);
|
||||||
use English qw ( -no_match_vars );
|
use English qw ( -no_match_vars );
|
||||||
use Carp qw (cluck carp);
|
|
||||||
use Clone qw (clone);
|
use Clone qw (clone);
|
||||||
use File::Path qw (make_path);
|
|
||||||
use Log::Any qw ($log);
|
use Log::Any qw ($log);
|
||||||
use Math::Random::Secure qw (irand);
|
use Math::Random::Secure qw (irand);
|
||||||
use Mojo::Base 'Teapot::Bot::Brain';
|
use Mojo::Base 'Teapot::Bot::Brain';
|
||||||
@@ -18,7 +16,7 @@ use BotLib::Admin qw (FortuneToggleList ChanMsgEnabled);
|
|||||||
use BotLib qw (Command Highlight BotSleep IsCensored);
|
use BotLib qw (Command Highlight BotSleep IsCensored);
|
||||||
use BotLib::Conf qw (LoadConf);
|
use BotLib::Conf qw (LoadConf);
|
||||||
use BotLib::Util qw (trim fmatch);
|
use BotLib::Util qw (trim fmatch);
|
||||||
use RedisLib qw (redis_parse_message redis_events_listener);
|
use RedisLib qw (redis_events_listener);
|
||||||
|
|
||||||
use version; our $VERSION = qw (1.0);
|
use version; our $VERSION = qw (1.0);
|
||||||
use Exporter qw (import);
|
use Exporter qw (import);
|
||||||
@@ -67,7 +65,7 @@ sub __cron {
|
|||||||
$rmsg->{chatid} = $enabledfortunechat;
|
$rmsg->{chatid} = $enabledfortunechat;
|
||||||
|
|
||||||
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
||||||
$c->{'redis_router_channel'} => $rmsg
|
$c->{'redis_router_channel'} => $rmsg,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -81,7 +79,7 @@ sub __on_msg {
|
|||||||
my $chatid;
|
my $chatid;
|
||||||
my $chatname = 'Noname chat';
|
my $chatname = 'Noname chat';
|
||||||
# user sending message info
|
# user sending message info
|
||||||
my ($userid, $username, $fullname, $highlight, $vis_a_vi) = BotLib::Highlight ($msg);
|
my ($userid, $username, $fullname, $highlight, $vis_a_vi) = Highlight ($msg);
|
||||||
my $csign = $c->{telegrambot}->{csign};
|
my $csign = $c->{telegrambot}->{csign};
|
||||||
|
|
||||||
unless ($myid) {
|
unless ($myid) {
|
||||||
@@ -161,7 +159,7 @@ sub __on_msg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
push @members, sprintf '[%s](tg://user?id=%s)', $member_str, $member->id;
|
push @members, sprintf '[%s](tg://user?id=%s)', $member_str, $member->id;
|
||||||
};
|
}
|
||||||
|
|
||||||
if ($#members > 1) {
|
if ($#members > 1) {
|
||||||
my $lastone = pop @members;
|
my $lastone = pop @members;
|
||||||
@@ -197,7 +195,7 @@ sub __on_msg {
|
|||||||
$rmsg->{chatid} = $userid;
|
$rmsg->{chatid} = $userid;
|
||||||
my $pubsub = $main::REDIS->pubsub;
|
my $pubsub = $main::REDIS->pubsub;
|
||||||
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
||||||
$c->{'redis_router_channel'} => $rmsg
|
$c->{'redis_router_channel'} => $rmsg,
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -289,7 +287,7 @@ sub __on_msg {
|
|||||||
my $pubsub = $main::REDIS->pubsub;
|
my $pubsub = $main::REDIS->pubsub;
|
||||||
|
|
||||||
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
||||||
$c->{'redis_router_channel'} => $rmsg
|
$c->{'redis_router_channel'} => $rmsg,
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -337,7 +335,7 @@ sub __on_msg {
|
|||||||
my $pubsub = $main::REDIS->pubsub;
|
my $pubsub = $main::REDIS->pubsub;
|
||||||
|
|
||||||
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
$pubsub->json ($c->{'redis_router_channel'})->notify (
|
||||||
$c->{'redis_router_channel'} => $rmsg
|
$c->{'redis_router_channel'} => $rmsg,
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -408,7 +406,7 @@ sub RunTelegramBot {
|
|||||||
while (sleep 3) {
|
while (sleep 3) {
|
||||||
eval { ## no critic (ErrorHandling::RequireCheckingReturnValueOfEval)
|
eval { ## no critic (ErrorHandling::RequireCheckingReturnValueOfEval)
|
||||||
TelegramBot->new->think;
|
TelegramBot->new->think;
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user