Files
tgex-backend/tg_bot/screens/add_project.go
2026-02-19 11:13:45 +03:00

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