обработка обновлений последовательно для каждого юзера благодаря mutex

This commit is contained in:
Artem Tsyrulnikov
2026-01-04 19:35:41 +03:00
parent 5251ec3015
commit 592ade7dce
9 changed files with 235 additions and 190 deletions

View File

@@ -6,6 +6,7 @@ import (
"strings"
"example.com/m/bot"
"example.com/m/ui"
"github.com/NicoNex/echotron/v3"
"github.com/rs/zerolog/log"
)
@@ -71,11 +72,6 @@ func (s *Creatives) renderCreatives(b *bot.Bot, mode bot.RenderMode, jwt string)
Начните с добавления первого креатива`, navPath)
} else {
pageInfo := ""
if page.Pages > 1 {
pageInfo = fmt.Sprintf(" <i>(стр. %d/%d)</i>", page.Page, page.Pages)
}
text = fmt.Sprintf(`<i>%s</i>
<b>Креативы</b>%s
@@ -84,7 +80,7 @@ func (s *Creatives) renderCreatives(b *bot.Bot, mode bot.RenderMode, jwt string)
Выберите креатив`,
navPath,
pageInfo)
ui.FormatPageInfo(s.CurrentPage, page.Pages))
}
// Создаем слоты для креативов
@@ -117,23 +113,14 @@ func (s *Creatives) renderCreatives(b *bot.Bot, mode bot.RenderMode, jwt string)
}
// Ряд: Пагинация + Добавить (динамическая ширина)
var navRow []echotron.InlineKeyboardButton
// Левая стрелка (только если есть предыдущая страница)
if s.CurrentPage > 0 {
navRow = append(navRow, bot.Button("←", "prev"))
if navRow := ui.BuildNavigationRow(ui.PaginationConfig{
CurrentPage: s.CurrentPage,
TotalPages: page.Pages,
MiddleButtons: []echotron.InlineKeyboardButton{bot.Button(" Добавить", "add_creative")},
}); navRow != nil {
buttons = append(buttons, navRow)
}
// Кнопка "Добавить креатив" всегда в центре
navRow = append(navRow, bot.Button(" Добавить", "add_creative"))
// Правая стрелка (только если есть следующая страница)
if s.CurrentPage+1 < page.Pages {
navRow = append(navRow, bot.Button("→", "next"))
}
buttons = append(buttons, navRow)
// Нижний ряд: Назад + Архив
buttons = append(buttons, bot.Row(
bot.Button("← Назад", "back"),