Разработка телеграм бота для управления роутерами
Основная задача бота - это активация устройств, управление ими по SSH, вывод актуальной информации о подписке и оплата подписки.Как я представляю инфраструктуру: VPS Сервер на котором находиться ботБаза данных для управление подпиской пользователя.Она должна содержать в себе следующее:- Код активации устройства;- IP-адрес устройства по которому будет происходить соединение;- Пароль устройства по которому будет происходить соединение;- Состояние подписки;- Количество оставшихся дней подписки.Как я вижу бота:Пользователь заходит в бота, бот приветствует его и просит ввести код роутера XXXXXX, где XXXXXX - это код активации, который будет создаваться из админ панели.Если код активации найден в Базе данных (далее БД), то пользователю отправляется сообщение об успешной активации и пускает в главное меню бота.Если код активации не был найден в БД, то пользователю предлагается проверить код устройства, если оно верно, то написать в тех. поддержку @username_support.Главное меню:Главное меню состоит из 5 кнопок:Инструкция - Выводит ссылку на инструкцию по подключению роутера;Состояние подписки - Выводит актуальную информацию о подписке (Кол-во оставшихся дней);Активировать подписку - После нажатия на кнопку, бот подключается к роутеру по SSH и выполняет на нём команду “interface Wireguard0 up”, если команда была успешно выполнена, то пользователь получает сообщение “Подписка активна, до конца подписки осталось (*) дней”, где (*) кол-во дней по состоянию подписки из БД;Продлить подписку - Выводит список подписок (1 мес. - 199 руб.; 6 мес. - 999 руб.; 12 мес. - 1600 руб.) при нажатии на кнопку пользователю выводится ссылка для оплаты (через API сервиса yoomoney.ru)Если бот увидит оплату, то он добавляет дни к подписке, которые соответствуют оплаченной сумме;Тех. поддержка - Выводит сообщение:“❗️Убедительная просьба подробно описать возникшую проблему, а также уточнить свой код активации.Для связи с технической поддержкой нажмите на кнопку ниже:” и кнопку: “Связаться с тех. поддержкой”, после её нажатия открывается чат с администратором в боте, бот же в админ-панель присылает сообщение администратору, где он может общаться с пользователем.Если пользователь начал чат, то у него должна появиться кнопка “Закрыть чат”, которая завершит общение с администратором и возвращает пользователя в главное меню.Админ-панель:Админ-панель должна состоять из 4 кнопок:Список устройств - Выводит список устройств, каждое устройство - это отдельная кнопка (название устройства это код активации устройства) при нажатии на которую выводится состояние об устройстве (Активированное или нет), интерфейсы (Состояние подключения интерфейсов), информацию о подписке (Сколько осталось дней) и IP-Адрес, логин и пароль устройства (Вся информация берется из БД);Добавить устройство - Данная кнопка позволяет добавить новый роутер в БД.Запрашивает код устройства, IP-адрес, логин, пароль устройства и кол-во дней подписки по умолчанию;Сообщения - Данная кнопка отправляет в панель сообщений тех. поддержки в которой администратор может общаться с пользователем;Статистика - выводит статистику активированных устройств и дней подписки на каждое устройство.Добавить дни - Данная кнопка может добавить пользователю дней к подписке.Выводится список активных пользователей и выбирается кол-во дней, вписывается цифрой.Если дни подписки закончились, бот должен в автоматическом режиме выключить интерфейс у пользователя командой “interface Wireguard0 down”, и отправить ему сообщение об окончании подписки.
Bots