Version Inicial
This commit is contained in:
154
handleDockerList.go
Normal file
154
handleDockerList.go
Normal file
@@ -0,0 +1,154 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/go-telegram/bot"
|
||||
"github.com/go-telegram/bot/models"
|
||||
)
|
||||
|
||||
func (appCtx *App) handleDockerList(ctx context.Context, b *bot.Bot, chatID int64) {
|
||||
text, keyboard, _ := appCtx.renderContainerPage(ctx, 0, true)
|
||||
appCtx.sendMessage(ctx, b, chatID, text, true, keyboard)
|
||||
}
|
||||
|
||||
func (appCtx *App) callbackDockerPagination(ctx context.Context, b *bot.Bot, update *models.Update) {
|
||||
if update.CallbackQuery == nil {
|
||||
return
|
||||
}
|
||||
|
||||
cb := update.CallbackQuery
|
||||
parts := strings.Split(cb.Data, ":")
|
||||
|
||||
if len(parts) != 2 {
|
||||
return
|
||||
}
|
||||
|
||||
pageIndex, err := strconv.Atoi(parts[1])
|
||||
if err != nil {
|
||||
pageIndex = 0
|
||||
}
|
||||
|
||||
text, keyboard, err := appCtx.renderContainerPage(ctx, pageIndex, false)
|
||||
if err != nil {
|
||||
appCtx.logger.Error("Pagination render failed", "error", err)
|
||||
b.AnswerCallbackQuery(ctx, &bot.AnswerCallbackQueryParams{
|
||||
CallbackQueryID: cb.ID,
|
||||
Text: appCtx.T("e.container.list"),
|
||||
ShowAlert: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
b.AnswerCallbackQuery(ctx, &bot.AnswerCallbackQueryParams{
|
||||
CallbackQueryID: cb.ID,
|
||||
})
|
||||
|
||||
_, err = b.EditMessageText(ctx, &bot.EditMessageTextParams{
|
||||
ChatID: cb.Message.Message.Chat.ID,
|
||||
MessageID: cb.Message.Message.ID,
|
||||
Text: text,
|
||||
ParseMode: "html",
|
||||
ReplyMarkup: keyboard,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
appCtx.logger.Warn("Failed pagination edit", "error", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func (appCtx *App) callbackDockerListRefresh(ctx context.Context, b *bot.Bot, update *models.Update) {
|
||||
if update.CallbackQuery == nil {
|
||||
return
|
||||
}
|
||||
|
||||
cb := update.CallbackQuery
|
||||
parts := strings.Split(cb.Data, ":")
|
||||
|
||||
if len(parts) != 2 {
|
||||
return
|
||||
}
|
||||
|
||||
pageIndex, err := strconv.Atoi(parts[1])
|
||||
if err != nil {
|
||||
pageIndex = 0
|
||||
}
|
||||
|
||||
text, keyboard, err := appCtx.renderContainerPage(ctx, pageIndex, true)
|
||||
if err != nil {
|
||||
appCtx.logger.Error("Refresh render failed", "error", err)
|
||||
b.AnswerCallbackQuery(ctx, &bot.AnswerCallbackQueryParams{
|
||||
CallbackQueryID: cb.ID,
|
||||
Text: appCtx.T("e.container.list"),
|
||||
ShowAlert: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
b.AnswerCallbackQuery(ctx, &bot.AnswerCallbackQueryParams{
|
||||
CallbackQueryID: cb.ID,
|
||||
Text: "🔄 Actualizado",
|
||||
})
|
||||
|
||||
_, err = b.EditMessageText(ctx, &bot.EditMessageTextParams{
|
||||
ChatID: cb.Message.Message.Chat.ID,
|
||||
MessageID: cb.Message.Message.ID,
|
||||
Text: text,
|
||||
ParseMode: "html",
|
||||
ReplyMarkup: keyboard,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
appCtx.logger.Warn("Failed refresh edit", "error", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func (appCtx *App) callbackDockerBack(ctx context.Context, b *bot.Bot, update *models.Update) {
|
||||
if update.CallbackQuery == nil {
|
||||
return
|
||||
}
|
||||
|
||||
cb := update.CallbackQuery
|
||||
parts := strings.Split(cb.Data, ":")
|
||||
|
||||
if len(parts) != 2 {
|
||||
return
|
||||
}
|
||||
|
||||
pageIndex, err := strconv.Atoi(parts[1])
|
||||
if err != nil {
|
||||
pageIndex = 0
|
||||
}
|
||||
|
||||
text, keyboard, err := appCtx.renderContainerPage(ctx, pageIndex, false)
|
||||
if err != nil {
|
||||
appCtx.logger.Error("Back render failed", "error", err)
|
||||
b.AnswerCallbackQuery(ctx, &bot.AnswerCallbackQueryParams{
|
||||
CallbackQueryID: cb.ID,
|
||||
Text: appCtx.T("e.container.list"),
|
||||
ShowAlert: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
b.AnswerCallbackQuery(ctx, &bot.AnswerCallbackQueryParams{
|
||||
CallbackQueryID: cb.ID,
|
||||
})
|
||||
|
||||
_, err = b.EditMessageText(ctx, &bot.EditMessageTextParams{
|
||||
ChatID: cb.Message.Message.Chat.ID,
|
||||
MessageID: cb.Message.Message.ID,
|
||||
Text: text,
|
||||
ParseMode: "html",
|
||||
ReplyMarkup: keyboard,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
appCtx.logger.Warn("Failed back edit", "error", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user