@@ -32,10 +32,14 @@ TInlineKeyboard = class;
3232 TInlineQueryEvent = procedure (ASender: TObject; AnInlineQuery: TTelegramInlineQueryObj) of object ;
3333 TChosenInlineResultEvent = procedure (ASender: TObject;
3434 AChosenInlineResult: TTelegramChosenInlineResultObj) of object ;
35- TPreCheckoutQueryEvent = procedure (ASender: TObject;
36- APreCheckoutQuery: TTelegramPreCheckOutQuery) of object ;
37- TSuccessfulPaymentEvent = procedure (ASender: TObject;
38- ASuccessfulPayment: TTelegramSuccessfulPayment) of object ;
35+ TPreCheckoutQueryEvent = procedure (ASender: TObject;
36+ APreCheckoutQuery: TTelegramPreCheckOutQuery) of object ;
37+ TSuccessfulPaymentEvent = procedure (ASender: TObject;
38+ ASuccessfulPayment: TTelegramSuccessfulPayment) of object ;
39+ TMessageReactionEvent = procedure (ASender: TObject;
40+ AMessageReaction: TTelegramMessageReactionUpdated) of object ;
41+ TMessageReactionCountEvent = procedure (ASender: TObject;
42+ AMessageReactionCount: TTelegramMessageReactionCountUpdated) of object ;
3943
4044 { TStringHash }
4145
@@ -450,8 +454,10 @@ TTelegramSender = class
450454 FOnReceiveEditedChannelPost: TMessageEvent;
451455 FOnReceiveEditedMessage: TMessageEvent;
452456 FOnReceiveInlineQuery: TInlineQueryEvent;
453- FOnReceiveMessage: TMessageEvent;
454- FOnReceiveMyChatMemberUpdated: TChatMemberEvent;
457+ FOnReceiveMessage: TMessageEvent;
458+ FOnReceiveMessageReaction: TMessageReactionEvent;
459+ FOnReceiveMessageReactionCount: TMessageReactionCountEvent;
460+ FOnReceiveMyChatMemberUpdated: TChatMemberEvent;
455461 FOnReceivePreCheckoutQuery: TPreCheckoutQueryEvent;
456462 FOnReceiveSuccessfulPayment: TMessageEvent;
457463 FUpdate: TTelegramUpdateObj;
@@ -522,12 +528,14 @@ TTelegramSender = class
522528 procedure DoReceiveCallbackQuery (ACallback: TCallbackQueryObj); virtual ;
523529 procedure DoReceiveChannelPost (AChannelPost: TTelegramMessageObj); virtual ;
524530 procedure DoReceiveEditedChannelPost (AChannelPost: TTelegramMessageObj); virtual ;
525- procedure DoReceiveInlineQuery (AnInlineQuery: TTelegramInlineQueryObj); virtual ;
526- procedure DoReceiveChosenInlineResult (AChosenInlineResult: TTelegramChosenInlineResultObj); virtual ;
527- procedure DoReceivePreCheckoutQuery (APreCheckoutQuery: TTelegramPreCheckOutQuery); virtual ;
528- procedure DoReceiveMyChatMemberQuery (AMyChatMember: TTelegramChatMemberUpdated); virtual ;
529- procedure DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated); virtual ;
530- procedure DoReceiveSuccessfulPayment (AMessage: TTelegramMessageObj); virtual ;
531+ procedure DoReceiveInlineQuery (AnInlineQuery: TTelegramInlineQueryObj); virtual ;
532+ procedure DoReceiveChosenInlineResult (AChosenInlineResult: TTelegramChosenInlineResultObj); virtual ;
533+ procedure DoReceivePreCheckoutQuery (APreCheckoutQuery: TTelegramPreCheckOutQuery); virtual ;
534+ procedure DoReceiveMyChatMemberQuery (AMyChatMember: TTelegramChatMemberUpdated); virtual ;
535+ procedure DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated); virtual ;
536+ procedure DoReceiveMessageReaction (AMessageReaction: TTelegramMessageReactionUpdated); virtual ;
537+ procedure DoReceiveMessageReactionCount (AMessageReactionCount: TTelegramMessageReactionCountUpdated); virtual ;
538+ procedure DoReceiveSuccessfulPayment (AMessage: TTelegramMessageObj); virtual ;
531539 procedure DoReceiveBusinessConnection (ABusinessConnection: TTelegramBusinessConnectionObj); virtual ;
532540 procedure DoReceiveBusinessMessage (ABusinessMessage: TTelegramMessageObj); virtual ;
533541 procedure DebugMessage (const Msg: String); virtual ; // it will send all requests and responses to the log. Useful during development
@@ -736,16 +744,20 @@ TTelegramSender = class
736744 write FOnReceiveInlineQuery;
737745 property OnReceiveChosenInlineResult: TChosenInlineResultEvent read FOnReceiveChosenInlineResult
738746 write FOnReceiveChosenInlineResult;
739- property OnReceivePreCheckoutQuery: TPreCheckoutQueryEvent read FOnReceivePreCheckoutQuery
740- write FOnReceivePreCheckoutQuery;
741- property OnReceiveSuccessfulPayment: TMessageEvent read FOnReceiveSuccessfulPayment
742- write FOnReceiveSuccessfulPayment;
743- property OnReceiveBusinessConnection: TBusinessConnectionEvent read FOnReceiveBusinessConnection
744- write FOnReceiveBusinessConnection;
745- property OnReceiveBusinessMessage: TMessageEvent read FOnReceiveBusinessMessage
746- write FOnReceiveBusinessMessage;
747- property OnReceiveMyChatMemberUpdated: TChatMemberEvent read FOnReceiveMyChatMemberUpdated
748- write FOnReceiveMyChatMemberUpdated;
747+ property OnReceivePreCheckoutQuery: TPreCheckoutQueryEvent read FOnReceivePreCheckoutQuery
748+ write FOnReceivePreCheckoutQuery;
749+ property OnReceiveSuccessfulPayment: TMessageEvent read FOnReceiveSuccessfulPayment
750+ write FOnReceiveSuccessfulPayment;
751+ property OnReceiveBusinessConnection: TBusinessConnectionEvent read FOnReceiveBusinessConnection
752+ write FOnReceiveBusinessConnection;
753+ property OnReceiveBusinessMessage: TMessageEvent read FOnReceiveBusinessMessage
754+ write FOnReceiveBusinessMessage;
755+ property OnReceiveMessageReaction: TMessageReactionEvent read FOnReceiveMessageReaction
756+ write FOnReceiveMessageReaction;
757+ property OnReceiveMessageReactionCount: TMessageReactionCountEvent read FOnReceiveMessageReactionCount
758+ write FOnReceiveMessageReactionCount;
759+ property OnReceiveMyChatMemberUpdated: TChatMemberEvent read FOnReceiveMyChatMemberUpdated
760+ write FOnReceiveMyChatMemberUpdated;
749761 property OnReceiveChatMemberUpdated: TChatMemberEvent read FOnReceiveChatMemberUpdated
750762 write FOnReceiveChatMemberUpdated;
751763 end ;
@@ -2265,11 +2277,11 @@ procedure TTelegramSender.DoReceiveMyChatMemberQuery(AMyChatMember: TTelegramCha
22652277 FOnReceiveMyChatMemberUpdated(Self, AMyChatMember);
22662278end ;
22672279
2268- procedure TTelegramSender.DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated);
2269- begin
2270- FCurrentMessage:=nil ;
2271- FCurrentChat:=AChatMember.Chat;
2272- FCurrentUser:=AChatMember.From;
2280+ procedure TTelegramSender.DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated);
2281+ begin
2282+ FCurrentMessage:=nil ;
2283+ FCurrentChat:=AChatMember.Chat;
2284+ FCurrentUser:=AChatMember.From;
22732285 FCurrentThreadId:=_nullThrd;
22742286 FCurrentIsTopicMessage:=False;
22752287 FCurrentChatId:=FCurrentUser.ID;
@@ -2278,9 +2290,41 @@ procedure TTelegramSender.DoReceiveChatMemberQuery(AChatMember: TTelegramChatMem
22782290 DoAfterParseUpdate;
22792291 if FLanguage=EmptyStr then
22802292 SetLanguage(CurrentLanguage(FCurrentUser));
2281- if Assigned(FOnReceiveChatMemberUpdated) then
2282- FOnReceiveChatMemberUpdated(Self, AChatMember);
2283- end ;
2293+ if Assigned(FOnReceiveChatMemberUpdated) then
2294+ FOnReceiveChatMemberUpdated(Self, AChatMember);
2295+ end ;
2296+
2297+ procedure TTelegramSender.DoReceiveMessageReaction (
2298+ AMessageReaction: TTelegramMessageReactionUpdated);
2299+ begin
2300+ FCurrentMessage:=nil ;
2301+ FCurrentChat:=AMessageReaction.Chat;
2302+ FCurrentChatID:=AMessageReaction.Chat.ID;
2303+ FCurrentThreadId:=_nullThrd;
2304+ FCurrentIsTopicMessage:=False;
2305+ FCurrentUser:=AMessageReaction.User;
2306+ if CurrentIsBanned then
2307+ Exit;
2308+ DoAfterParseUpdate;
2309+ if Assigned(FOnReceiveMessageReaction) then
2310+ FOnReceiveMessageReaction(Self, AMessageReaction);
2311+ end ;
2312+
2313+ procedure TTelegramSender.DoReceiveMessageReactionCount (
2314+ AMessageReactionCount: TTelegramMessageReactionCountUpdated);
2315+ begin
2316+ FCurrentMessage:=nil ;
2317+ FCurrentChat:=AMessageReactionCount.Chat;
2318+ FCurrentChatID:=AMessageReactionCount.Chat.ID;
2319+ FCurrentThreadId:=_nullThrd;
2320+ FCurrentIsTopicMessage:=False;
2321+ FCurrentUser:=nil ;
2322+ if CurrentIsBanned then
2323+ Exit;
2324+ DoAfterParseUpdate;
2325+ if Assigned(FOnReceiveMessageReactionCount) then
2326+ FOnReceiveMessageReactionCount(Self, AMessageReactionCount);
2327+ end ;
22842328
22852329procedure TTelegramSender.DoReceiveSuccessfulPayment (
22862330 AMessage: TTelegramMessageObj);
@@ -2350,11 +2394,13 @@ procedure TTelegramSender.DoReceiveUpdate(AnUpdate: TTelegramUpdateObj);
23502394 utChosenInlineResult: DoReceiveChosenInlineResult(AnUpdate.ChosenInlineResult);
23512395 utCallbackQuery: DoReceiveCallbackQuery(AnUpdate.CallbackQuery);
23522396 utPreCheckoutQuery: DoReceivePreCheckoutQuery(AnUpdate.PreCheckoutQuery);
2353- utMyChatMember: DoReceiveMyChatMemberQuery(AnUpdate.MyChatMember);
2354- utChatMember: DoReceiveChatMemberQuery(AnUpdate.ChatMember);
2355- utBusinessConnection: DoReceiveBusinessConnection(AnUpdate.BusinessConnection);
2356- utBusinessMessage: DoReceiveBusinessMessage(AnUpdate.BusinessMessage);
2357- end ;
2397+ utMyChatMember: DoReceiveMyChatMemberQuery(AnUpdate.MyChatMember);
2398+ utChatMember: DoReceiveChatMemberQuery(AnUpdate.ChatMember);
2399+ utBusinessConnection: DoReceiveBusinessConnection(AnUpdate.BusinessConnection);
2400+ utBusinessMessage: DoReceiveBusinessMessage(AnUpdate.BusinessMessage);
2401+ utMessageReaction: DoReceiveMessageReaction(AnUpdate.MessageReaction);
2402+ utMessageReactionCount: DoReceiveMessageReactionCount(AnUpdate.MessageReactionCount);
2403+ end ;
23582404 if Assigned(FUpdateLogger) then
23592405 if CurrentIsSimpleUser then // This is to ensure that admins and moderators do not affect the statistics
23602406 FUpdateLogger.Log(AnUpdate.AsString);
0 commit comments