From 5448c9bfdb71ae347458da70a303d8116a24e296 Mon Sep 17 00:00:00 2001 From: eleksir Date: Thu, 8 May 2025 14:56:25 +0300 Subject: [PATCH] Add type Reaction --- lib/Teapot/Bot/Brain.pm | 3 +- lib/Teapot/Bot/Object/MessageReaction.pm | 61 ++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 lib/Teapot/Bot/Object/MessageReaction.pm diff --git a/lib/Teapot/Bot/Brain.pm b/lib/Teapot/Bot/Brain.pm index 7893db9..6bd9e19 100644 --- a/lib/Teapot/Bot/Brain.pm +++ b/lib/Teapot/Bot/Brain.pm @@ -33,6 +33,7 @@ use Teapot::Bot::Object::User (); use Teapot::Bot::Object::Chat (); use Teapot::Bot::Object::ChatMember (); use Teapot::Bot::Object::ChatInviteLink (); +use Teapot::Bot::Object::MessageReaction (); $Teapot::Bot::Brain::VERSION = '0.026'; @@ -938,7 +939,7 @@ sub _process_message { $update = Teapot::Bot::Object::PollAnswer->create_from_hash($item->{poll_answer}, $self) if $item->{poll_answer}; $update = Teapot::Bot::Object::ChatMemberUpdated->create_from_hash($item->{my_chat_member}, $self) if $item->{my_chat_member}; $update = Teapot::Bot::Object::ChatMemberUpdated->create_from_hash($item->{chat_member}, $self) if $item->{chat_member}; - + $update = Teapot::Bot::Object::MessageReaction->create_from_hash($item->{message_reaction}, self) if $item->{message_reaction}; # if we got to this point without creating a response, it must be a type we # don't handle yet if (! $update) { diff --git a/lib/Teapot/Bot/Object/MessageReaction.pm b/lib/Teapot/Bot/Object/MessageReaction.pm new file mode 100644 index 0000000..6aab71f --- /dev/null +++ b/lib/Teapot/Bot/Object/MessageReaction.pm @@ -0,0 +1,61 @@ +package Teapot::Bot::Object::MessageReaction; +# ABSTRACT: The base class for Telegram message 'Reaction' type. + +use strict; +use warnings; +use 5.018; ## no critic (ProhibitImplicitImport) +use utf8; + +use Mojo::Base 'Teapot::Bot::Object::Base'; + +$Teapot::Bot::Object::MessageReaction::VERSION = '0.026'; + +has 'type'; # Type of the reaction, always โ€œemojiโ€ +has 'emoji'; # Reaction emoji. Currently, it can be one of "๐Ÿ‘", "๐Ÿ‘Ž", "โค", "๐Ÿ”ฅ", "๐Ÿฅฐ", "๐Ÿ‘", "๐Ÿ˜", "๐Ÿค”", +# "๐Ÿคฏ", "๐Ÿ˜ฑ", "๐Ÿคฌ", "๐Ÿ˜ข", "๐ŸŽ‰", "๐Ÿคฉ", "๐Ÿคฎ", "๐Ÿ’ฉ", "๐Ÿ™", "๐Ÿ‘Œ", "๐Ÿ•Š", "๐Ÿคก", "๐Ÿฅฑ", "๐Ÿฅด", "๐Ÿ˜", "๐Ÿณ", "โคโ€๐Ÿ”ฅ", "๐ŸŒš", "๐ŸŒญ", +# "๐Ÿ’ฏ", "๐Ÿคฃ", "โšก", "๐ŸŒ", "๐Ÿ†", "๐Ÿ’”", "๐Ÿคจ", "๐Ÿ˜", "๐Ÿ“", "๐Ÿพ", "๐Ÿ’‹", "๐Ÿ–•", "๐Ÿ˜ˆ", "๐Ÿ˜ด", "๐Ÿ˜ญ", "๐Ÿค“", "๐Ÿ‘ป", "๐Ÿ‘จโ€๐Ÿ’ป", "๐Ÿ‘€", +# "๐ŸŽƒ", "๐Ÿ™ˆ", "๐Ÿ˜‡", "๐Ÿ˜จ", "๐Ÿค", "โœ", "๐Ÿค—", "๐Ÿซก", "๐ŸŽ…", "๐ŸŽ„", "โ˜ƒ", "๐Ÿ’…", "๐Ÿคช", "๐Ÿ—ฟ", "๐Ÿ†’", "๐Ÿ’˜", "๐Ÿ™‰", "๐Ÿฆ„", "๐Ÿ˜˜", +# "๐Ÿ’Š", "๐Ÿ™Š", "๐Ÿ˜Ž", "๐Ÿ‘พ", "๐Ÿคทโ€โ™‚", "๐Ÿคท", "๐Ÿคทโ€โ™€", "๐Ÿ˜ก" +has 'custom_emoji_id'; # Only for ReactionTypeCustomEmoji. Custom emoji identifier. +has 'total_count'; # Only for ReactionCount. Number of times the reaction was added. + +sub fields { + return { + 'scalar' => [qw/type emoji custom_emoji_id total_count/], + }; +} + +1; + +__END__ + +=pod + +=encoding utf8 + +=head1 NAME + +Teapot::Bot::Object::MessageReaction - The base class for Telegram message 'Reaction' type + +=head1 VERSION + +version 0.026 + +=head1 DESCRIPTION +The base class for Telegram message 'Reaction' type. + +See L for details of the +attributes available for C objects. + +=head1 AUTHOR + +Sergei Fedosov + +=head1 LICENSE AND COPYRIGHT + +This software is copyright (c) 2025 Sergei Fedosov . + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +=cut