Files
tgex-backend/tg_bot/screens/add_project.go
Artem Tsyrulnikov 0ad9fe36a6 add channel format
2026-02-28 12:33:20 +03:00

60 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package screens
import (
"fmt"
"strings"
"github.com/NicoNex/echotron/v3"
"github.com/TelegramExchange/tgex-backend/tg_bot/bot"
)
type AddProject struct {
BackState bot.State
}
const addProjectInstructionText = `<b>Как добавить канал в проект</b>
Назначьте <b>@%s</b> администратором канала.
<blockquote expandable><b>Необходимые права:</b>
➔ Управление сообщениями
➔ Добавление участников
<b>После добавления бота:</b>
• Если у вас <b>1 рабочее пространство</b> — канал добавится автоматически
• Если у вас <b>несколько рабочих пространств</b> — вы получите уведомление с кнопкой выбора</blockquote>`
func (s *AddProject) Enter(b *bot.Bot, mode bot.RenderMode) {
botUsername := strings.TrimPrefix(bot.Username(), "@")
addBotURL := fmt.Sprintf("https://t.me/%s?startchannel&admin=invite_users+post_messages+edit_messages+delete_messages", botUsername)
buttons := [][]echotron.InlineKeyboardButton{
Row(Stylish(URLButton("Назначить администратором", addBotURL), echotron.DangerButtonStyle)),
Row(Button("← Назад", "back")),
}
keyboard := Keyboard(buttons...)
b.Render(fmt.Sprintf(addProjectInstructionText, botUsername), keyboard, mode)
}
func (s *AddProject) HandleCallback(b *bot.Bot, u *echotron.Update) {
if u.CallbackQuery == nil || u.CallbackQuery.Data == "" {
return
}
switch u.CallbackQuery.Data {
case "back":
if s.BackState != nil {
b.SetState(s.BackState, bot.EditMessage)
}
}
}
func (s *AddProject) HandleMessage(_ *bot.Bot, _ *echotron.Update) {}
func (s *AddProject) Handle(_ *bot.Bot, _ *echotron.Update) {}
func (s *AddProject) Exit() {}