-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathkeyboard.go
More file actions
91 lines (65 loc) · 2.24 KB
/
keyboard.go
File metadata and controls
91 lines (65 loc) · 2.24 KB
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
package telepher
import (
"github.com/goTelegramBot/telepher/types"
)
func InlineKeyboardMarkup() (*InlineKeyboard){
InlineKeyboard := &InlineKeyboard{}
return InlineKeyboard
}
func ReplyKeyboardMarkup(keyboardOptions *KeyboardOptions) (*ReplyKeyboard){
ReplyKeyboard := &ReplyKeyboard{}
if keyboardOptions != nil {
ReplyKeyboard.ResizeKeyboard = keyboardOptions.ResizeKeyboard
ReplyKeyboard.OneTimeKeyboard = keyboardOptions.OneTimeKeyboard
ReplyKeyboard.Selective = keyboardOptions.Selective
}
return ReplyKeyboard
}
type InlineKeyboard struct{
}
type ReplyKeyboard struct{
ResizeKeyboard bool
OneTimeKeyboard bool
Selective bool
}
type KeyboardOptions struct {
ResizeKeyboard bool
OneTimeKeyboard bool
Selective bool
}
func (inline InlineKeyboard) Row(InlineButton ...types.InlineKeyboardButton)([]types.InlineKeyboardButton){
var row []types.InlineKeyboardButton
for _, data := range InlineButton {
row = append(row,types.InlineKeyboardButton{
Text: data.Text,
Url: data.Url,
LoginUrl: data.LoginUrl,
CallbackData: data.CallbackData,
SwitchInlineQuery: data.SwitchInlineQuery,
SwitchInlineQueryCurrentChat: data.SwitchInlineQueryCurrentChat,
CallbackGame: data.CallbackGame,
Pay: data.Pay,
})
}
return row
}
func (keyboard ReplyKeyboard) Row(keyboardButton ...types.KeyboardButton)([]types.KeyboardButton){
var row []types.KeyboardButton
for _, data := range keyboardButton {
row = append(row,types.KeyboardButton{
Text: data.Text,
RequestContact: data.RequestContact,
RequestLocation: data.RequestLocation,
RequestPoll: data.RequestPoll,
})
}
return row
}
func (inlineKeyboard InlineKeyboard) Parse(buttons ...[]types.InlineKeyboardButton)(types.ReplyMarkup){
reply_markup := types.ReplyMarkup{InlineKeyboardMarkup: &types.InlineKeyboardReplyMarkup{InlineKeyboardMarkup:buttons}}
return reply_markup
}
func (replyKeyboard ReplyKeyboard) Parse(buttons ...[]types.KeyboardButton)(types.ReplyMarkup){
reply_markup := types.ReplyMarkup{ReplyKeyboardMarkup: &types.KeyboardMarkup{Keyboard:buttons,ResizeKeyboard:replyKeyboard.ResizeKeyboard,OneTimeKeyboard:replyKeyboard.OneTimeKeyboard,Selective:replyKeyboard.Selective}}
return reply_markup
}