This repository has been archived by the owner on Feb 12, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
/
TelegramBotApi.Polling.Console.pas
156 lines (138 loc) · 6.26 KB
/
TelegramBotApi.Polling.Console.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
{***************************************************************************}
{ }
{ TelegaPi }
{ }
{ Copyright (C) 2021 Maxim Sysoev }
{ }
{ https://t.me/CloudAPI }
{ }
{ }
{***************************************************************************}
{ }
{ Licensed under the Apache License, Version 2.0 (the "License"); }
{ you may not use this file except in compliance with the License. }
{ You may obtain a copy of the License at }
{ }
{ http://www.apache.org/licenses/LICENSE-2.0 }
{ }
{ Unless required by applicable law or agreed to in writing, software }
{ distributed under the License is distributed on an "AS IS" BASIS, }
{ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. }
{ See the License for the specific language governing permissions and }
{ limitations under the License. }
{ }
{***************************************************************************}
unit TelegramBotApi.Polling.Console;
interface
uses
TelegramBotApi.Polling.Base,
TelegramBotApi.Types,
System.SysUtils;
type
TtgPollingConsole = class(TtgPollingBase)
private
FOnUpdate: TProc<TtgUpdate>;
FOnUpdates: TProc<TArray<TtgUpdate>>;
FOnCallbackQuery: TProc<TtgCallbackQuery>;
FOnChannelPost: TProc<TtgMessage>;
FOnChosenInlineResult: TProc<TtgChosenInlineResult>;
FOnEditedChannelPost: TProc<TtgMessage>;
FOnMessage: TProc<TtgMessage>;
FOnInlineQuery: TProc<TtgInlineQuery>;
FOnEditedMessage: TProc<TtgMessage>;
FOnShippingQuery: TProc<TtgShippingQuery>;
FOnPreCheckoutQuery: TProc<TtgPreCheckoutQuery>;
protected
procedure DoOnCallbackQuery(ACallbackQuery: TtgCallbackQuery); override;
procedure DoOnChannelPost(AChannelPost: TtgMessage); override;
procedure DoOnChosenInlineResult(AChosenInlineResult: TtgChosenInlineResult); override;
procedure DoOnEditedChannelPost(AEditedChannelPost: TtgMessage); override;
procedure DoOnEditedMessage(AEditedMessage: TtgMessage); override;
procedure DoOnInlineQuery(AInlineQuery: TtgInlineQuery); override;
procedure DoOnMessage(AMessage: TtgMessage); override;
procedure DoOnPreCheckoutQuery(APreCheckoutQuery: TtgPreCheckoutQuery); override;
procedure DoOnShippingQuery(AShippingQuery: TtgShippingQuery); override;
procedure DoOnUpdate(AUpdate: TtgUpdate); override;
procedure DoOnUpdates(AUpdates: System.TArray<TelegramBotApi.Types.TtgUpdate>); override;
public
property OnCallbackQuery: TProc<TtgCallbackQuery> read FOnCallbackQuery write FOnCallbackQuery;
property OnChannelPost: TProc<TtgMessage> read FOnChannelPost write FOnChannelPost;
property OnChosenInlineResult: TProc<TtgChosenInlineResult> read FOnChosenInlineResult write FOnChosenInlineResult;
property OnEditedChannelPost: TProc<TtgMessage> read FOnEditedChannelPost write FOnEditedChannelPost;
property OnEditedMessage: TProc<TtgMessage> read FOnEditedMessage write FOnEditedMessage;
property OnInlineQuery: TProc<TtgInlineQuery> read FOnInlineQuery write FOnInlineQuery;
property OnMessage: TProc<TtgMessage> read FOnMessage write FOnMessage;
property OnPreCheckoutQuery: TProc<TtgPreCheckoutQuery> read FOnPreCheckoutQuery write FOnPreCheckoutQuery;
property OnShippingQuery: TProc<TtgShippingQuery> read FOnShippingQuery write FOnShippingQuery;
property OnUpdate: TProc<TtgUpdate> read FOnUpdate write FOnUpdate;
property OnUpdates: TProc < TArray < TtgUpdate >> read FOnUpdates write FOnUpdates;
end;
implementation
{ TtgPollingConsole }
procedure TtgPollingConsole.DoOnCallbackQuery(ACallbackQuery: TtgCallbackQuery);
begin
inherited;
if Assigned(OnCallbackQuery) then
OnCallbackQuery(ACallbackQuery);
end;
procedure TtgPollingConsole.DoOnChannelPost(AChannelPost: TtgMessage);
begin
inherited;
if Assigned(OnChannelPost) then
OnChannelPost(AChannelPost);
end;
procedure TtgPollingConsole.DoOnChosenInlineResult(AChosenInlineResult: TtgChosenInlineResult);
begin
inherited;
if Assigned(OnChosenInlineResult) then
OnChosenInlineResult(AChosenInlineResult);
end;
procedure TtgPollingConsole.DoOnEditedChannelPost(AEditedChannelPost: TtgMessage);
begin
inherited;
if Assigned(OnEditedChannelPost) then
OnEditedChannelPost(AEditedChannelPost);
end;
procedure TtgPollingConsole.DoOnEditedMessage(AEditedMessage: TtgMessage);
begin
inherited;
if Assigned(OnEditedMessage) then
OnEditedMessage(AEditedMessage);
end;
procedure TtgPollingConsole.DoOnInlineQuery(AInlineQuery: TtgInlineQuery);
begin
inherited;
if Assigned(OnInlineQuery) then
OnInlineQuery(AInlineQuery);
end;
procedure TtgPollingConsole.DoOnMessage(AMessage: TtgMessage);
begin
inherited;
if Assigned(OnMessage) then
OnMessage(AMessage);
end;
procedure TtgPollingConsole.DoOnPreCheckoutQuery(APreCheckoutQuery: TtgPreCheckoutQuery);
begin
inherited;
if Assigned(OnPreCheckoutQuery) then
OnPreCheckoutQuery(APreCheckoutQuery);
end;
procedure TtgPollingConsole.DoOnShippingQuery(AShippingQuery: TtgShippingQuery);
begin
inherited;
if Assigned(OnShippingQuery) then
OnShippingQuery(AShippingQuery);
end;
procedure TtgPollingConsole.DoOnUpdate(AUpdate: TtgUpdate);
begin
inherited;
if Assigned(OnUpdate) then
OnUpdate(AUpdate);
end;
procedure TtgPollingConsole.DoOnUpdates(AUpdates: System.TArray<TelegramBotApi.Types.TtgUpdate>);
begin
inherited;
if Assigned(OnUpdates) then
OnUpdates(AUpdates);
end;
end.