-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
InlineKeyboardButton_T.m
65 lines (64 loc) · 2.7 KB
/
InlineKeyboardButton_T.m
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
function Button = InlineKeyboardButton_T(text, varargin)
% InlineKeyboardButton_T - This object represents one button of an inline
% keyboard. You must use exactly one of the optional fields.
%
% text String Label text on the button
%
% url String Optional. HTTP or tg:// url to be opened when button is
% pressed
%
% login_url LoginUrl Optional. An HTTP URL used to automatically
% authorize the user. Can be used as a replacement for the Telegram Login
% Widget.
%
% callback_data String Optional. Data to be sent in a callback query to
% the bot when button is pressed, 1-64 bytes
%
% switch_inline_query String Optional. If set, pressing the button will
% prompt the user to select one of their chats, open that chat and insert
% the bot's username and the specified inline query in the input field. Can
% be empty, in which case just the bot's username will be inserted. Note:
% This offers an easy way for users to start using your bot in inline mode
% when they are currently in a private chat with it. Especially useful when
% combined with switch_pm… actions – in this case the user will be
% automatically returned to the chat they switched from, skipping the chat
% selection screen.
%
% switch_inline_query_current_chat String Optional. If set, pressing the
% button will insert the bot's username and the specified inline query in
% the current chat's input field. Can be empty, in which case only the
% bot's username will be inserted. This offers a quick way for the user to
% open your bot in inline mode in the same chat – good for selecting
% something from multiple options.
%
% callback_game CallbackGame Optional. Description of the game that will
% be launched when the user presses the button. NOTE: This type of button
% must always be the first button in the first row.
%
% pay Boolean Optional. Specify True, to send a Pay button. NOTE: This
% type of button must always be the first button in the first row.
%
Button = struct;
Button.text = (text);
while ~isempty(varargin)
switch lower(varargin{1})
case 'url'
Button.url = varargin{2};
case 'login_url'
Button.login_url = varargin{2};
case 'callback_data'
Button.callback_data = varargin{2};
case 'switch_inline_query'
Button.switch_inline_query = varargin{2};
case 'switch_inline_query_current_chat'
Button.switch_inline_query_current_chat = varargin{2};
case 'callback_game'
Button.callback_game = varargin{2};
case 'pay'
Button.pay = varargin{2};
otherwise
error(['Unexpected option: ' varargin{1}])
end
varargin(1:2) = [];
end
end