1

Teapot lib: Implement ability to delete message in chat

This commit is contained in:
eleksir
2021-02-22 23:28:33 +03:00
parent 4bdaea0a42
commit 52724accee
2 changed files with 108 additions and 0 deletions

View File

@@ -254,6 +254,44 @@ sub forwardMessage {
}
}
# TODO: Check that message is no older than 48 hrs
sub deleteMessage {
my $self = shift;
my $args = shift || {};
my $send_args = {};
unless ($args->{chat_id}) {
cluck 'No chat_id supplied in deleteMessage()';
return {'error' => 1};
}
$send_args->{chat_id} = $args->{chat_id};
unless ($args->{message_id}) {
cluck 'No message_id supplied in deleteMessage()';
return {'error' => 1};
}
$send_args->{message_id} = $args->{message_id};
my $token = $self->token || croak 'No token supplied to deleteMessage()?';
if (Teapot::Bot::Object::ChatMember::canDelete($self, $chatid)) {
my $url = "https://api.telegram.org/bot${token}/deleteMessage";
my $api_response = $self->_post_request($url, $send_args);
if ($api_response) {
return Teapot::Bot::Object::Message->create_from_hash($api_response, $self);
}
else {
return {'error' => 1};
}
}
else {
return {'error' => 1};
}
}
sub sendPhoto {
my $self = shift;
@@ -571,6 +609,14 @@ Returns a L<Teapot::Bot::Object::Message> object.
On error returns hash reference with error set to 1
=head2 deleteMessage
See L<https://core.telegram.org/bots/api#deletemessage>.
Returns a L<Teapot::Bot::Object::Message> object.
On error returns hash reference with error set to 1
=head2 sendPhoto
See L<https://core.telegram.org/bots/api#sendphoto>.