фиксы
This commit is contained in:
@@ -500,26 +500,8 @@ func escapeHTML(s string) string {
|
||||
return s
|
||||
}
|
||||
|
||||
// showCreativeConfirmation показывает превью креатива + панель с предложением добавить
|
||||
func (s *AddCreative) showCreativeConfirmation(b *bot.Bot) {
|
||||
|
||||
// 1. Отправляем/обновляем превью креатива
|
||||
if s.CreativeMessageID == nil {
|
||||
s.SendCreativePreview(b)
|
||||
} else {
|
||||
s.UpdateCreativePreview(b)
|
||||
}
|
||||
|
||||
// 2. Формируем текст панели управления
|
||||
// Экранируем HTML-символы в названии для безопасного вывода
|
||||
escapedName := escapeHTML(*s.Name)
|
||||
confirmText := fmt.Sprintf(`<b>➕ Добавляем этот креатив?</b>
|
||||
|
||||
<b>Название креатива:</b> %s
|
||||
|
||||
<i>Если нужно изменить название креатива, просто введите его здесь. Название автоматически сохранится. Лимит 200 символов.</i>`, escapedName)
|
||||
|
||||
// 3. Показываем панель с кнопками редактирования + сохранения
|
||||
// buildEditorButtons создает кнопки для панели редактирования креатива
|
||||
func (s *AddCreative) buildEditorButtons(confirmText, cancelCallback string) [][]echotron.InlineKeyboardButton {
|
||||
var buttons [][]echotron.InlineKeyboardButton
|
||||
|
||||
// Кнопки редактирования
|
||||
@@ -559,15 +541,39 @@ func (s *AddCreative) showCreativeConfirmation(b *bot.Bot) {
|
||||
// Финальные кнопки
|
||||
if s.Text != nil {
|
||||
buttons = append(buttons, bot.Row(
|
||||
bot.Button("← Отмена", "cancel"),
|
||||
bot.Button("✓ Сохранить", "confirm_create"),
|
||||
bot.Button("← "+cancelCallback, "cancel"),
|
||||
bot.Button(confirmText, "confirm_create"),
|
||||
))
|
||||
} else {
|
||||
buttons = append(buttons, bot.Row(
|
||||
bot.Button("← Отмена", "cancel"),
|
||||
bot.Button("← "+cancelCallback, "cancel"),
|
||||
))
|
||||
}
|
||||
|
||||
return buttons
|
||||
}
|
||||
|
||||
// showCreativeConfirmation показывает превью креатива + панель с предложением добавить
|
||||
func (s *AddCreative) showCreativeConfirmation(b *bot.Bot) {
|
||||
|
||||
// 1. Отправляем/обновляем превью креатива
|
||||
if s.CreativeMessageID == nil {
|
||||
s.SendCreativePreview(b)
|
||||
} else {
|
||||
s.UpdateCreativePreview(b)
|
||||
}
|
||||
|
||||
// 2. Формируем текст панели управления
|
||||
// Экранируем HTML-символы в названии для безопасного вывода
|
||||
escapedName := escapeHTML(*s.Name)
|
||||
confirmText := fmt.Sprintf(`<b>➕ Добавляем этот креатив?</b>
|
||||
|
||||
<b>Название креатива:</b> %s
|
||||
|
||||
<i>Если нужно изменить название креатива, просто введите его здесь. Название автоматически сохранится. Лимит 200 символов.</i>`, escapedName)
|
||||
|
||||
// 3. Показываем панель с кнопками редактирования + сохранения
|
||||
buttons := s.buildEditorButtons("✓ Сохранить", "Отмена")
|
||||
s.ShowControlPanel(b, confirmText, buttons)
|
||||
}
|
||||
|
||||
@@ -596,9 +602,9 @@ func (s *AddCreative) createCreative(b *bot.Bot) {
|
||||
mediaData, err = b.DownloadFileBytes(s.MediaFileID)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to download creative media")
|
||||
b.SendNew("<b>❌ Не удалось загрузить медиа</b>", bot.Keyboard(
|
||||
bot.Row(bot.Button("← Назад", "cancel")),
|
||||
))
|
||||
// Показываем ошибку через панель управления
|
||||
buttons := s.buildEditorButtons("✓ Попробовать снова", "Отмена")
|
||||
s.ShowControlPanel(b, "<b>❌ Не удалось загрузить медиа</b>\n\nПопробуйте удалить медиа и добавить заново.", buttons)
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -653,12 +659,16 @@ func (s *AddCreative) createCreative(b *bot.Bot) {
|
||||
|
||||
<b>Пример правильного текста:</b>
|
||||
<i>Присоединяйтесь к нашему каналу!
|
||||
https://t.me/+AbCdEfGhIjKlMn</i>`
|
||||
https://t.me/+AbCdEfGhIjKlMn</i>
|
||||
|
||||
<b>Нажмите "✎ Текст" ниже чтобы исправить.</b>`
|
||||
} else if strings.Contains(errMsg, "Creative text must contain only one invite link") {
|
||||
userMsg = `<b>❌ Слишком много ссылок</b>
|
||||
|
||||
Текст должен содержать <b>ТОЛЬКО ОДНУ</b> инвайт-ссылку.
|
||||
У вас их несколько. Удалите лишние.`
|
||||
У вас их несколько. Удалите лишние.
|
||||
|
||||
<b>Нажмите "✎ Текст" ниже чтобы исправить.</b>`
|
||||
} else {
|
||||
userMsg = `<b>❌ Ошибка создания</b>
|
||||
|
||||
@@ -666,9 +676,9 @@ https://t.me/+AbCdEfGhIjKlMn</i>`
|
||||
Попробуйте ещё раз или вернитесь назад.`
|
||||
}
|
||||
|
||||
b.SendNew(userMsg, bot.Keyboard(
|
||||
bot.Row(bot.Button("← Назад", "back_from_preview")),
|
||||
))
|
||||
// Показываем ошибку через панель управления, чтобы не ломать порядок сообщений
|
||||
buttons := s.buildEditorButtons("✓ Попробовать снова", "Отмена")
|
||||
s.ShowControlPanel(b, userMsg, buttons)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user