70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
package tg
|
|
|
|
import (
|
|
"fmt"
|
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
|
query "github.com/tgckpg/golifehk/query"
|
|
)
|
|
|
|
func BotSendText(bot *tgbotapi.BotAPI, update *tgbotapi.Update, mesg *string) {
|
|
var msg tgbotapi.MessageConfig
|
|
msg = tgbotapi.NewMessage(update.Message.Chat.ID, *mesg)
|
|
msg.ParseMode = "MarkdownV2"
|
|
|
|
msg.ReplyToMessageID = update.Message.MessageID
|
|
bot.Send(msg)
|
|
}
|
|
|
|
func BotSend(bot *tgbotapi.BotAPI, update *tgbotapi.Update, qResult query.IQueryResult) (bool, error) {
|
|
|
|
var msg tgbotapi.MessageConfig
|
|
mesg, err := qResult.Message()
|
|
|
|
if err != nil {
|
|
// not sent, error
|
|
return false, err
|
|
}
|
|
|
|
mesgType := qResult.DataType()
|
|
|
|
switch mesgType {
|
|
case "IGNORE":
|
|
// not sent with no error tells the parent to look for other processors
|
|
return false, nil
|
|
}
|
|
|
|
var chatId int64
|
|
if update.Message != nil {
|
|
chatId = update.Message.Chat.ID
|
|
msg.ReplyToMessageID = update.Message.MessageID
|
|
}
|
|
|
|
if update.CallbackQuery != nil {
|
|
chatId = update.CallbackQuery.Message.Chat.ID
|
|
}
|
|
|
|
msg = tgbotapi.NewMessage(chatId, mesg)
|
|
msg.ParseMode = "MarkdownV2"
|
|
|
|
switch mesgType {
|
|
case "PlainText":
|
|
case "Table":
|
|
|
|
buttonRows := [][]tgbotapi.InlineKeyboardButton{}
|
|
for _, row := range qResult.GetTableData() {
|
|
buttons := []tgbotapi.InlineKeyboardButton{}
|
|
for _, cell := range row {
|
|
button := tgbotapi.NewInlineKeyboardButtonData(cell.Name, cell.Value)
|
|
buttons = append(buttons, button)
|
|
fmt.Println(cell)
|
|
}
|
|
buttonRows = append(buttonRows, buttons)
|
|
}
|
|
|
|
msg.ReplyMarkup = tgbotapi.NewInlineKeyboardMarkup(buttonRows...)
|
|
}
|
|
|
|
bot.Send(msg)
|
|
return true, nil
|
|
}
|