mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-29 22:56:39 +08:00
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package telegram
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/PaulSonOfLars/gotgbot/v2"
|
|
"github.com/PaulSonOfLars/gotgbot/v2/ext"
|
|
"github.com/PaulSonOfLars/gotgbot/v2/ext/handlers"
|
|
"github.com/PaulSonOfLars/gotgbot/v2/ext/handlers/conversation"
|
|
"github.com/PaulSonOfLars/gotgbot/v2/ext/handlers/filters/callbackquery"
|
|
)
|
|
|
|
func cancelConversationInlineKeyboard() gotgbot.InlineKeyboardMarkup {
|
|
bt := gotgbot.InlineKeyboardMarkup{
|
|
InlineKeyboard: [][]gotgbot.InlineKeyboardButton{{
|
|
{Text: "取消", CallbackData: "cancel"},
|
|
}},
|
|
}
|
|
|
|
return bt
|
|
}
|
|
|
|
func cancelConversationOpts() *handlers.ConversationOpts {
|
|
return &handlers.ConversationOpts{
|
|
Exits: []ext.Handler{handlers.NewCallback(callbackquery.Equal("cancel"), cancelConversation)},
|
|
StateStorage: conversation.NewInMemoryStorage(conversation.KeyStrategySenderAndChat),
|
|
AllowReEntry: true,
|
|
}
|
|
}
|
|
|
|
func cancelConversation(b *gotgbot.Bot, ctx *ext.Context) error {
|
|
cb := ctx.Update.CallbackQuery
|
|
_, err := cb.Answer(b, &gotgbot.AnswerCallbackQueryOpts{
|
|
Text: "已取消!",
|
|
})
|
|
if err != nil {
|
|
return fmt.Errorf("failed to answer start callback query: %w", err)
|
|
}
|
|
|
|
_, err = cb.Message.Delete(b, nil)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to send cancel message: %w", err)
|
|
}
|
|
|
|
return handlers.EndConversation()
|
|
}
|