Try to catch and log as most Bot API errors as we can in TelegramBot.pm

This commit is contained in:
eleksir
2023-01-02 19:34:38 +03:00
parent 5a5e4b5ead
commit c5b4d1c866

View File

@@ -118,13 +118,14 @@ sub __on_msg {
my $myObj = $self->getMe (); my $myObj = $self->getMe ();
if ($myObj->{error}) { if ($myObj->{error}) {
$log->error ("[ERROR] Unable to call getMe BotAPI method: " . Dumper ($myObj));
return; return;
} }
$myid = $myObj->id; $myid = $myObj->id;
$myusername = $myObj->username; $myusername = $myObj->username;
$myfirst_name = $myObj->first_name; $myfirst_name = $myObj->first_name;
$mylast_name = $myObj->last_name; $mylast_name = $myObj->last_name;
if (defined ($myfirst_name) && ($myfirst_name ne '') && defined ($mylast_name) && ($mylast_name ne '')) { if (defined ($myfirst_name) && ($myfirst_name ne '') && defined ($mylast_name) && ($mylast_name ne '')) {
$myfullname = $myfirst_name . ' ' . $mylast_name; $myfullname = $myfirst_name . ' ' . $mylast_name;
@@ -207,7 +208,12 @@ sub __on_msg {
} }
BotSleep $msg; BotSleep $msg;
$msg->replyMd ($phrase); my $res = $msg->replyMd ($phrase);
if ($res->{error}) {
$log->error ("Unable to call sendMessage BotAPI method: " . Dumper ($res));
}
return; return;
} }
@@ -250,7 +256,12 @@ sub __on_msg {
my $leftuser = sprintf '[%s](tg://user?id=%s)', $member_str, $member->id; my $leftuser = sprintf '[%s](tg://user?id=%s)', $member_str, $member->id;
$phrase = sprintf $goodbye[irand ($#goodbye + 1)], $leftuser; $phrase = sprintf $goodbye[irand ($#goodbye + 1)], $leftuser;
$msg->replyMd ($phrase); my $res = $msg->replyMd ($phrase);
if ($res->{error}) {
$log->error ("Unable to call sendMessage BotAPI method: " . Dumper ($res));
}
return; return;
} }
@@ -310,7 +321,11 @@ sub __on_msg {
# И вот тут как раз такая проверка и происходит # И вот тут как раз такая проверка и происходит
if (IsCensored $msg) { if (IsCensored $msg) {
$log->info (sprintf '[INFO] In public chat %s (%s) message from %s was censored', $chatname, $chatid, $vis_a_vi); $log->info (sprintf '[INFO] In public chat %s (%s) message from %s was censored', $chatname, $chatid, $vis_a_vi);
$self->deleteMessage ({chat_id => $chatid, message_id => $msg->{message_id}}); my $res = $self->deleteMessage ({chat_id => $chatid, message_id => $msg->{message_id}});
if ($res->{error}) {
$log->error ("Unable to call sendMessage BotAPI method: " . Dumper ($res));
}
} }
# Некоторые рекламные товарищи пытаются срать своими каналами в чятик это тоже можно зацензурить ботом и это # Некоторые рекламные товарищи пытаются срать своими каналами в чятик это тоже можно зацензурить ботом и это
@@ -322,7 +337,11 @@ sub __on_msg {
if (defined $sender_chat) { if (defined $sender_chat) {
unless (ChanMsgEnabled ($chatid)) { unless (ChanMsgEnabled ($chatid)) {
$self->deleteMessage ({chat_id => $chatid, message_id => $msg->{message_id}}); my $res = $self->deleteMessage ({chat_id => $chatid, message_id => $msg->{message_id}});
if ($res->{error}) {
$log->error ("Unable to call sendMessage BotAPI method: " . Dumper ($res));
}
} }
} }
} }
@@ -489,7 +508,12 @@ sub __on_msg {
$chatname, $chatid, $vis_a_vi, $reply, $chatname, $chatid, $vis_a_vi, $reply,
) )
); );
$msg->reply ($reply);
my $res = $msg->reply ($reply);
if ($res->{error}) {
$log->error ("Unable to call sendMessage BotAPI method: " . Dumper ($res));
}
} else { } else {
$log->debug ( $log->debug (
sprintf ( sprintf (
@@ -526,6 +550,8 @@ sub RunTelegramBot {
eval { ## no critic (ErrorHandling::RequireCheckingReturnValueOfEval) eval { ## no critic (ErrorHandling::RequireCheckingReturnValueOfEval)
TelegramBot->new->think; TelegramBot->new->think;
}; };
$log->error ("[ERROR] $EVAL_ERROR");
} }
return; return;