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 = `Как добавить канал в проект Назначьте @%s администратором канала.
Необходимые права: ➔ Управление сообщениями ➔ Добавление участников После добавления бота: • Если у вас 1 рабочее пространство — канал добавится автоматически • Если у вас несколько рабочих пространств — вы получите уведомление с кнопкой выбора` 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() {}