Perlcritic overhaul, apply to Teapot lib too

This commit is contained in:
eleksir
2022-02-12 17:31:09 +03:00
parent e84241c340
commit a9bb74b440
54 changed files with 493 additions and 263 deletions

View File

@@ -6,25 +6,27 @@ use Mojo::Base -base;
use strict;
use warnings;
use 5.018; ## no critic (ProhibitImplicitImport)
use utf8;
use English qw ( -no_match_vars );
use Mojo::IOLoop;
use Mojo::UserAgent;
use Mojo::IOLoop ();
use Mojo::UserAgent ();
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
# lower layer (Mojo loop)
# use confess where we want to say that fatal error happen in lower layer (Mojo loop)
use Log::Any;
use Data::Dumper;
use Log::Any ();
use Data::Dumper qw (Dumper);
use Teapot::Bot::Object::Message;
use Teapot::Bot::Object::Poll;
use Teapot::Bot::Object::PollAnswer;
use Teapot::Bot::Object::ChatMemberUpdated;
use Teapot::Bot::Object::User;
use Teapot::Bot::Object::Chat;
use Teapot::Bot::Object::ChatMember;
use Teapot::Bot::Object::ChatInviteLink;
use Teapot::Bot::Object::Message ();
use Teapot::Bot::Object::Poll ();
use Teapot::Bot::Object::PollAnswer ();
use Teapot::Bot::Object::ChatMemberUpdated ();
use Teapot::Bot::Object::User ();
use Teapot::Bot::Object::Chat ();
use Teapot::Bot::Object::ChatMember ();
use Teapot::Bot::Object::ChatInviteLink ();
$Teapot::Bot::Brain::VERSION = '0.022';
@@ -706,7 +708,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=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
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.
=head2 add_listener

View File

@@ -1,9 +1,13 @@
package Teapot::Bot::Object::Animation;
# 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 Teapot::Bot::Object::PhotoSize;
use Carp qw/croak/;
use Teapot::Bot::Object::PhotoSize ();
$Teapot::Bot::Object::Animation::VERSION = '0.022';
@@ -31,7 +35,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -45,7 +49,7 @@ version 0.022
The base class for Telegram message 'Animation' type.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::Audio;
# 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';
$Teapot::Bot::Object::Audio::VERSION = '0.022';
@@ -28,7 +33,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -42,7 +47,7 @@ version 0.022
The base class for Telegram 'Audio' type objects.
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

View File

@@ -1,11 +1,17 @@
package Teapot::Bot::Object::Base;
# ABSTRACT: The base class for all Teapot::Bot::Object objects.
use Mojo::Base -base;
use List::Util qw/any/;
use strict;
use warnings;
use 5.018; ## no critic (ProhibitImplicitImport)
use utf8;
use Carp qw/croak cluck/;
use Data::Dumper;
use Data::Dumper qw (Dumper);
use JSON::PP ();
use List::Util qw/any/;
use Mojo::Base -base;
$Teapot::Bot::Object::Base::VERSION = '0.022';
@@ -27,7 +33,6 @@ sub _field_is_array {
return;
}
sub array_of_arrays { return qw// } #override if needed
sub _field_is_array_of_arrays {
my $self = shift;
@@ -59,9 +64,6 @@ sub create_from_array {
return $obj;
}
cluck "Dumping class: " . Dumper ($class);
cluck "Dumping array: " . Dumper ($array);
# it's stub, return $obj
return $obj;
}
@@ -163,7 +165,7 @@ sub as_hashref {
if (ref($self->$field) ne 'ARRAY' && defined $self->$field);
# array types
$hash->{$field} = [
map { $_->as_hashref } @{ $self->$field }
map { $_->as_hashref } @{ $self->$field },
] if (ref($self->$field) eq 'ARRAY');
}
}
@@ -177,7 +179,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=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.
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
L<Teapot::Bot::Brain>.

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::CallbackGame;
# 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';
$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"
sub fields {
return { },
return { };
}
1;
@@ -17,7 +22,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -31,7 +36,7 @@ version 0.022
The base class for Telegram message 'CallbackGame' type.
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

View File

@@ -1,11 +1,16 @@
package Teapot::Bot::Object::Chat;
# 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 Teapot::Bot::Object::ChatPhoto;
use Teapot::Bot::Object::Message;
use Teapot::Bot::Object::ChatPermissions;
use Teapot::Bot::Object::ChatLocation;
use Teapot::Bot::Object::ChatPhoto ();
use Teapot::Bot::Object::Message ();
use Teapot::Bot::Object::ChatPermissions ();
use Teapot::Bot::Object::ChatLocation ();
$Teapot::Bot::Object::Chat::VERSION = '0.022';
@@ -64,7 +69,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -78,7 +83,7 @@ version 0.022
The base class for Telegram 'Chat' type objects.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::ChatInviteLink;
# 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 Teapot::Bot::Object::User;
use Teapot::Bot::Object::User ();
$Teapot::Bot::Object::ChatInviteLink::VERSION = '0.022';
@@ -31,7 +36,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -45,7 +50,7 @@ version 0.022
The base class for Telegram message 'ChatInviteLink' type.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::ChatLocation;
# 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';
$Teapot::Bot::Object::ChatLocation::VERSION = '0.022';
@@ -21,7 +26,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -35,7 +40,7 @@ version 0.022
The base class for Telegram message 'ChatLocation' type.
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

View File

@@ -1,10 +1,17 @@
package Teapot::Bot::Object::ChatMember;
# ABSTRACT: The base class for Telegram 'ChatMember' type objects
use Mojo::Base 'Teapot::Bot::Object::Base';
use Teapot::Bot::Object::User;
use strict;
use warnings;
use 5.018; ## no critic (ProhibitImplicitImport)
use utf8;
use Carp qw(cluck);
use Mojo::Base 'Teapot::Bot::Object::Base';
use Teapot::Bot::Object::User ();
$Teapot::Bot::Object::ChatMember::VERSION = '0.022';
# ChatMemberOwner
@@ -130,7 +137,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -144,7 +151,7 @@ version 0.022
The base class for Telegram 'ChatMember' type objects.
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

View File

@@ -1,12 +1,17 @@
package Teapot::Bot::Object::ChatMemberUpdated;
# 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 Teapot::Bot::Object::Chat;
use Teapot::Bot::Object::User;
use Teapot::Bot::Object::ChatMember;
use Teapot::Bot::Object::ChatInviteLink;
use Teapot::Bot::Object::Voice;
use Teapot::Bot::Object::Chat ();
use Teapot::Bot::Object::User ();
use Teapot::Bot::Object::ChatMember ();
use Teapot::Bot::Object::ChatInviteLink ();
use Teapot::Bot::Object::Voice ();
$Teapot::Bot::Object::ChatMemberUpdated::VERSION = '0.022';
@@ -27,7 +32,7 @@ sub fields {
'scalar' => [qw/date text/],
'Teapot::Bot::Object::ChatMember' => [qw/old_chat_member new_chat_member/],
'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
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -51,7 +56,7 @@ version 0.022
The base class for Telegram 'ChatMemberUpdated' type objects.
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

View File

@@ -1,8 +1,14 @@
package Teapot::Bot::Object::ChatPermissions;
# 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 Mojo::Base 'Teapot::Bot::Object::Base';
use Teapot::Bot::Brain;
use Teapot::Bot::Brain ();
$Teapot::Bot::Object::ChatPermissions::VERSION = '0.022';
@@ -25,7 +31,7 @@ sub fields {
return {
'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_invite_users can_pin_messages/]
can_invite_users can_pin_messages/],
};
}
@@ -84,7 +90,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -98,7 +104,7 @@ version 0.022
The base class for Telegram 'ChatPermissions' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::ChatPhoto;
# 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';
$Teapot::Bot::Object::ChatPhoto::VERSION = '0.022';
@@ -22,7 +27,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -36,7 +41,7 @@ version 0.022
The base class for Telegram 'ChatPhoto' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::Contact;
# 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';
$Teapot::Bot::Object::Contact::VERSION = '0.022';
@@ -23,7 +28,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -37,7 +42,7 @@ version 0.022
The base class for Telegram 'Contact' objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::Dice;
# 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';
$Teapot::Bot::Object::Dice::VERSION = '0.022';
@@ -18,7 +23,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -32,7 +37,7 @@ version 0.022
The base class for Telegram message 'Dice' type.
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

View File

@@ -1,9 +1,13 @@
package Teapot::Bot::Object::Document;
# 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';
@@ -17,7 +21,7 @@ has 'file_size';
sub fields {
return {
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
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -41,7 +45,7 @@ version 0.022
The base class for Telegram 'Document' objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::EncryptedCredentials;
# 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';
$Teapot::Bot::Object::EncryptedCredentials::VERSION = '0.022';
@@ -19,7 +24,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -33,7 +38,7 @@ version 0.022
The base class for Telegram 'EncryptedCredentials' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::EncryptedPassportElement;
# 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';
$Teapot::Bot::Object::EncryptedPassportElement::VERSION = '0.022';
@@ -25,7 +30,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -39,7 +44,7 @@ version 0.022
The base class for Telegram 'EncryptedPassportElement' type objects.
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.

View File

@@ -1,11 +1,15 @@
package Teapot::Bot::Object::Game;
# 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 Teapot::Bot::Object::PhotoSize;
use Teapot::Bot::Object::Animation;
use Teapot::Bot::Object::MessageEntity;
use Teapot::Bot::Object::PhotoSize ();
use Teapot::Bot::Object::Animation ();
use Teapot::Bot::Object::MessageEntity ();
$Teapot::Bot::Object::Game::VERSION = '0.022';
@@ -33,7 +37,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -47,7 +51,7 @@ version 0.022
The base class for Telegram message 'Game' type.
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

View File

@@ -1,9 +1,14 @@
package Teapot::Bot::Object::InlineKeyboardButton;
# 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 Teapot::Bot::Object::LoginUrl;
use Teapot::Bot::Object::CallbackGame;
use Teapot::Bot::Object::LoginUrl ();
use Teapot::Bot::Object::CallbackGame ();
$Teapot::Bot::Object::InlineKeyboardButton::VERSION = '0.022';
@@ -30,7 +35,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -44,7 +49,7 @@ version 0.022
The base class for Telegram 'InlineKeyboardButton' type objects.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::InlineKeyboardMarkup;
# 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 Teapot::Bot::Object::InlineKeyboardButton;
use Teapot::Bot::Object::InlineKeyboardButton ();
$Teapot::Bot::Object::InlineKeyboardMarkup::VERSION = '0.022';
@@ -22,7 +27,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -36,7 +41,7 @@ version 0.022
The base class for Telegram 'InlineKeyboardMarkup' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::Invoice;
# 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';
$Teapot::Bot::Object::Invoice::VERSION = '0.022';
@@ -21,7 +26,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -35,7 +40,7 @@ version 0.022
The base class for Telegram 'Invoice' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::Location;
# 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';
$Teapot::Bot::Object::Location::VERSION = '0.022';
@@ -22,7 +27,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -36,7 +41,7 @@ version 0.022
The base class for Telegram message 'Location' type.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::LoginUrl;
# 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';
$Teapot::Bot::Object::LoginUrl::VERSION = '0.022';
@@ -20,7 +25,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -34,7 +39,7 @@ version 0.022
The base class for Telegram 'LoginUrl' type objects.
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

View File

@@ -1,42 +1,44 @@
package Teapot::Bot::Object::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 Teapot::Bot::Object::User;
use Teapot::Bot::Object::Chat;
use Teapot::Bot::Object::ChatMember;
use Teapot::Bot::Object::ChatPermissions;
use Teapot::Bot::Object::MessageEntity;
use Teapot::Bot::Object::Audio;
use Teapot::Bot::Object::Document;
use Teapot::Bot::Object::Animation;
use Teapot::Bot::Object::Game;
use Teapot::Bot::Object::PhotoSize;
use Teapot::Bot::Object::Sticker;
use Teapot::Bot::Object::Video;
use Teapot::Bot::Object::Voice;
use Teapot::Bot::Object::VideoNote;
use Teapot::Bot::Object::Contact;
use Teapot::Bot::Object::Location;
use Teapot::Bot::Object::Poll;
use Teapot::Bot::Object::Location;
use Teapot::Bot::Object::PhotoSize;
use Teapot::Bot::Object::Invoice;
use Teapot::Bot::Object::Venue;
use Teapot::Bot::Object::SuccessfulPayment;
use Teapot::Bot::Object::PassportData;
use Teapot::Bot::Object::InlineKeyboardMarkup;
use Teapot::Bot::Object::ProximityAlertTriggered;
use Teapot::Bot::Object::Dice;
use Teapot::Bot::Object::MessageAutoDeleteTimerChanged;
use Teapot::Bot::Object::VoiceChatScheduled;
use Teapot::Bot::Object::VoiceChatStarted;
use Teapot::Bot::Object::VoiceChatEnded;
use Teapot::Bot::Object::VoiceChatParticipantsInvited;
use Data::Dumper;
use Carp qw(cluck);
use Teapot::Bot::Object::User ();
use Teapot::Bot::Object::Chat ();
use Teapot::Bot::Object::ChatMember ();
use Teapot::Bot::Object::ChatPermissions ();
use Teapot::Bot::Object::MessageEntity ();
use Teapot::Bot::Object::Audio ();
use Teapot::Bot::Object::Document ();
use Teapot::Bot::Object::Animation ();
use Teapot::Bot::Object::Game ();
use Teapot::Bot::Object::PhotoSize ();
use Teapot::Bot::Object::Sticker ();
use Teapot::Bot::Object::Video ();
use Teapot::Bot::Object::Voice ();
use Teapot::Bot::Object::VideoNote ();
use Teapot::Bot::Object::Contact ();
use Teapot::Bot::Object::Location ();
use Teapot::Bot::Object::Poll ();
use Teapot::Bot::Object::Location ();
use Teapot::Bot::Object::PhotoSize ();
use Teapot::Bot::Object::Invoice ();
use Teapot::Bot::Object::Venue ();
use Teapot::Bot::Object::SuccessfulPayment ();
use Teapot::Bot::Object::PassportData ();
use Teapot::Bot::Object::InlineKeyboardMarkup ();
use Teapot::Bot::Object::ProximityAlertTriggered ();
use Teapot::Bot::Object::Dice ();
use Teapot::Bot::Object::MessageAutoDeleteTimerChanged ();
use Teapot::Bot::Object::VoiceChatScheduled ();
use Teapot::Bot::Object::VoiceChatStarted ();
use Teapot::Bot::Object::VoiceChatEnded ();
use Teapot::Bot::Object::VoiceChatParticipantsInvited ();
$Teapot::Bot::Object::Message::VERSION = '0.022';
@@ -200,7 +202,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -214,7 +216,7 @@ version 0.022
The base class for the Telegram type "Message".
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
@@ -222,7 +224,7 @@ attributes available for L<Teapot::Bot::Object::Message> objects.
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.
=head2 typing

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::MessageAutoDeleteTimerChanged;
# 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';
$Teapot::Bot::Object::MessageAutoDeleteTimerChanged::VERSION = '0.022';
@@ -19,7 +24,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -33,7 +38,7 @@ version 0.022
The base class for Telegram 'MessageAutoDeleteTimerChanged' type objects.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::MessageEntity;
# 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 Teapot::Bot::Object::User;
use Teapot::Bot::Object::User ();
$Teapot::Bot::Object::MessageEntity::VERSION = '0.022';
@@ -26,7 +31,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -40,7 +45,7 @@ version 0.022
The base class for Telegram 'MessageEntity' type objects.
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

View File

@@ -1,9 +1,14 @@
package Teapot::Bot::Object::PassportData;
# 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 Teapot::Bot::Object::EncryptedPassportElement;
use Teapot::Bot::Object::EncryptedCredentials;
use Teapot::Bot::Object::EncryptedPassportElement ();
use Teapot::Bot::Object::EncryptedCredentials ();
$Teapot::Bot::Object::PassportData::VERSION = '0.022';
@@ -27,7 +32,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -41,7 +46,7 @@ version 0.022
The base class for Telegram 'PassportData' type objects.
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

View File

@@ -1,8 +1,12 @@
package Teapot::Bot::Object::PhotoSize;
# 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 Carp qw/croak/;
$Teapot::Bot::Object::PhotoSize::VERSION = '0.022';
@@ -22,7 +26,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -36,7 +40,7 @@ version 0.022
The base class for Telegram message 'PhotoSize' type.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::Poll;
# 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 Teapot::Bot::Object::PollOption;
use Teapot::Bot::Object::PollOption ();
$Teapot::Bot::Object::Poll::VERSION = '0.022';
@@ -39,7 +44,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -53,7 +58,7 @@ version 0.022
The base class for Telegram 'Poll' type objects
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::PollAnswer;
# 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';
$Teapot::Bot::Object::PollAnswer::VERSION = '0.022';
@@ -26,7 +31,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -40,7 +45,7 @@ version 0.022
The base class for Telegram 'PollAnswer' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::PollOption;
# 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';
$Teapot::Bot::Object::PollOption::VERSION = '0.022';
@@ -18,7 +23,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -32,7 +37,7 @@ version 0.022
The base class for Telegram 'PollOption' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::ProximityAlertTriggered;
# 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';
$Teapot::Bot::Object::ProximityAlertTriggered::VERSION = '0.022';
@@ -22,7 +27,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -36,7 +41,7 @@ version 0.022
The base class for Telegram message 'ProximityAlertTriggered' type.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::Sticker;
# 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 Teapot::Bot::Object::PhotoSize;
use Teapot::Bot::Object::PhotoSize ();
$Teapot::Bot::Object::Sticker::VERSION = '0.022';
@@ -28,7 +33,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -42,7 +47,7 @@ version 0.022
The base class for Telegram message 'Sticker' type.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::SuccessfulPayment;
# 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 Teapot::Bot::Object::OrderInfo;
@@ -28,7 +33,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -42,7 +47,7 @@ version 0.022
The base class for Telegram 'SuccessfulPayment' type objects.
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

View File

@@ -1,6 +1,10 @@
package Teapot::Bot::Object::User;
# 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';
@@ -19,7 +23,7 @@ has 'supports_inline_queries'; # optional, only for getMe() method
sub fields {
return {
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
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -43,7 +47,7 @@ version 0.022
The base class for Telegram message 'User' type.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::Venue;
# 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 Teapot::Bot::Object::Location;
use Teapot::Bot::Object::Location ();
$Teapot::Bot::Object::Venue::VERSION = '0.022';
@@ -17,7 +22,7 @@ has 'google_place_type';
sub fields {
return {
'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
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -42,7 +47,7 @@ version 0.022
The base class for Telegram 'LoginUrl' type objects.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::Video;
# 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 Teapot::Bot::Object::PhotoSize;
use Teapot::Bot::Object::PhotoSize ();
$Teapot::Bot::Object::Video::VERSION = '0.022';
@@ -20,7 +25,7 @@ sub fields {
return {
scalar => [qw/file_id file_unique_id width height duration file_name mime_type
file_size/],
'Teapot::Bot::Object::PhotoSize' => [qw/thumb/]
'Teapot::Bot::Object::PhotoSize' => [qw/thumb/],
};
}
@@ -30,7 +35,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -44,7 +49,7 @@ version 0.022
The base class for Telegram 'Video' object.
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

View File

@@ -1,9 +1,13 @@
package Teapot::Bot::Object::VideoNote;
# 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 Teapot::Bot::Object::PhotoSize;
use Teapot::Bot::Object::PhotoSize ();
$Teapot::Bot::Object::VideoNote::VERSION = '0.022';
@@ -28,7 +32,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -42,7 +46,7 @@ version 0.022
The base class for Telegram 'VideoNote' type object.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::Voice;
# 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';
$Teapot::Bot::Object::Voice::VERSION = '0.022';
@@ -21,7 +26,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -35,7 +40,7 @@ version 0.022
The base class for Telegram 'Voice' type objects.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::VoiceChatEnded;
# 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';
$Teapot::Bot::Object::VoiceChatEnded::VERSION = '0.022';
@@ -18,7 +23,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -32,7 +37,7 @@ version 0.022
The base class for Telegram message 'VoiceChatEnded' type.
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

View File

@@ -1,8 +1,13 @@
package Teapot::Bot::Object::VoiceChatParticipantsInvited;
# 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 Teapot::Bot::Object::User;
use Teapot::Bot::Object::User ();
$Teapot::Bot::Object::VoiceChatParticipantsInvited::VERSION = '0.022';
@@ -23,7 +28,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -37,7 +42,7 @@ version 0.022
The base class for Telegram message 'VoiceChatParticipantsInvited' type.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::VoiceChatScheduled;
# 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';
$Teapot::Bot::Object::VoiceChatScheduled::VERSION = '0.022';
@@ -18,7 +23,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -32,7 +37,7 @@ version 0.022
The base class for Telegram message 'VoiceChatScheduled' type.
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

View File

@@ -1,6 +1,11 @@
package Teapot::Bot::Object::VoiceChatStarted;
# 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';
$Teapot::Bot::Object::VoiceChatStarted::VERSION = '0.022';
@@ -18,7 +23,7 @@ __END__
=pod
=encoding UTF-8
=encoding utf8
=head1 NAME
@@ -32,7 +37,7 @@ version 0.022
The base class for Telegram message 'VoiceChatStarted' type.
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