From b8be1961551aef9c51329583b3bbca3bc42e6e78 Mon Sep 17 00:00:00 2001 From: eleksir Date: Thu, 8 May 2025 17:01:15 +0300 Subject: [PATCH] Add quirk for api incosistency in reactions --- lib/BotLib/Util.pm | 43 +++++++++++++------ .../Bot/Object/MessageReactionUpdated.pm | 2 +- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/lib/BotLib/Util.pm b/lib/BotLib/Util.pm index 6461dbf..11ca034 100644 --- a/lib/BotLib/Util.pm +++ b/lib/BotLib/Util.pm @@ -89,20 +89,39 @@ sub Highlight { return ($userid, $username, $fullname, $highlight, undef); } - $userid = $msg->from->id; + if ($msg->can ('from')) { + $userid = $msg->from->id; - if ($msg->from->can ('username') && defined $msg->from->username ) { - $username = $msg->from->username; - } - - if ($msg->from->can ('first_name') && defined $msg->from->first_name) { - $fullname = $msg->from->first_name; - - if ($msg->from->can ('last_name') && defined $msg->from->last_name) { - $fullname .= ' ' . $msg->from->last_name; + if ($msg->from->can ('username') && defined $msg->from->username ) { + $username = $msg->from->username; + } + + if ($msg->from->can ('first_name') && defined $msg->from->first_name) { + $fullname = $msg->from->first_name; + + if ($msg->from->can ('last_name') && defined $msg->from->last_name) { + $fullname .= ' ' . $msg->from->last_name; + } + } elsif ($msg->from->can ('last_name') && defined $msg->from->last_name) { + $fullname .= $msg->from->last_name; + } + } else { + # Reacions case. + $userid = $msg->user->id; + + if ($msg->user->can ('username') && defined $msg->user->username ) { + $username = $msg->user->username; + } + + if ($msg->user->can ('first_name') && defined $msg->user->first_name) { + $fullname = $msg->user->first_name; + + if ($msg->user->can ('last_name') && defined $msg->user->last_name) { + $fullname .= ' ' . $msg->user->last_name; + } + } elsif ($msg->user->can ('last_name') && defined $msg->user->last_name) { + $fullname .= $msg->user->last_name; } - } elsif ($msg->from->can ('last_name') && defined $msg->from->last_name) { - $fullname .= $msg->from->last_name; } if (defined $username) { diff --git a/lib/Teapot/Bot/Object/MessageReactionUpdated.pm b/lib/Teapot/Bot/Object/MessageReactionUpdated.pm index b938f2a..cbf55ad 100644 --- a/lib/Teapot/Bot/Object/MessageReactionUpdated.pm +++ b/lib/Teapot/Bot/Object/MessageReactionUpdated.pm @@ -10,7 +10,7 @@ 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::MessageReaction (); $Teapot::Bot::Object::MessageReactionUpdated::VERSION = '0.026';