закуп много каналов
This commit is contained in:
@@ -3,6 +3,7 @@ package bot
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"example.com/m/adapter/backend"
|
||||
"github.com/NicoNex/echotron/v3"
|
||||
@@ -143,6 +144,11 @@ func (b *Bot) SendNew(text string, keyboard echotron.InlineKeyboardMarkup) {
|
||||
|
||||
func (b *Bot) Edit(text string, keyboard echotron.InlineKeyboardMarkup) {
|
||||
if b.LastMessageID != 0 {
|
||||
log.Info().
|
||||
Int("last_msg_id", b.LastMessageID).
|
||||
Int("keyboard_rows", len(keyboard.InlineKeyboard)).
|
||||
Int("text_len", len(text)).
|
||||
Msg("EditMessageText request")
|
||||
_, err := b.EditMessageText(
|
||||
text,
|
||||
echotron.NewMessageID(b.ChatID, b.LastMessageID),
|
||||
@@ -152,6 +158,13 @@ func (b *Bot) Edit(text string, keyboard echotron.InlineKeyboardMarkup) {
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "message is not modified") {
|
||||
log.Info().Msg("EditMessageText ignored: message is not modified")
|
||||
if b.exec != nil {
|
||||
b.exec.handled = true
|
||||
}
|
||||
return
|
||||
}
|
||||
log.Error().Err(err).Msg("EditMessageText")
|
||||
}
|
||||
} else {
|
||||
@@ -195,6 +208,9 @@ func (b *Bot) Update(u *echotron.Update) {
|
||||
log.Info().
|
||||
Int64("chat_id", b.ChatID).
|
||||
Str("current_state", fmt.Sprintf("%T", b.CurrentState)).
|
||||
Bool("has_callback", u.CallbackQuery != nil).
|
||||
Bool("has_message", u.Message != nil).
|
||||
Bool("has_edited_message", u.EditedMessage != nil).
|
||||
Msg("Update received")
|
||||
|
||||
// Обрабатываем системные события (добавление в канал, подписки и т.д.)
|
||||
@@ -255,7 +271,21 @@ func (b *Bot) Update(u *echotron.Update) {
|
||||
}
|
||||
|
||||
if u.CallbackQuery != nil {
|
||||
log.Info().
|
||||
Str("callback_data", u.CallbackQuery.Data).
|
||||
Int("callback_msg_id", func() int {
|
||||
if u.CallbackQuery.Message != nil {
|
||||
return u.CallbackQuery.Message.ID
|
||||
}
|
||||
return 0
|
||||
}()).
|
||||
Int("last_msg_id", b.LastMessageID).
|
||||
Msg("Callback received")
|
||||
b.cleanupCallbackUI(u)
|
||||
if u.CallbackQuery.Data == "empty" || u.CallbackQuery.Data == "page_info" || u.CallbackQuery.Data == "noop" {
|
||||
exec.handled = true
|
||||
return
|
||||
}
|
||||
|
||||
if b.GlobalCallbackRouter != nil && u.CallbackQuery.Data != "" {
|
||||
if newState := b.GlobalCallbackRouter(u.CallbackQuery.Data); newState != nil {
|
||||
@@ -272,11 +302,23 @@ func (b *Bot) Update(u *echotron.Update) {
|
||||
}
|
||||
|
||||
if !exec.handled && !exec.transitioned {
|
||||
log.Info().
|
||||
Bool("has_callback", u.CallbackQuery != nil).
|
||||
Bool("has_message", u.Message != nil).
|
||||
Bool("handled", exec.handled).
|
||||
Bool("transitioned", exec.transitioned).
|
||||
Msg("No handler handled update, calling common handler")
|
||||
log.Info().Msg("Common handler")
|
||||
b.CurrentState.Handle(b, u)
|
||||
}
|
||||
|
||||
if !exec.handled && !exec.transitioned {
|
||||
log.Info().
|
||||
Bool("has_callback", u.CallbackQuery != nil).
|
||||
Bool("has_message", u.Message != nil).
|
||||
Bool("handled", exec.handled).
|
||||
Bool("transitioned", exec.transitioned).
|
||||
Msg("Default feedback triggered")
|
||||
log.Info().Msg("Default feedback")
|
||||
b.SetState(b.DefaultStateFactory(), NewMessage)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user