Разработка телеграм бота для управления роутерами
Как я представляю инфраструктуру:
- 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”, и отправить ему сообщение об окончании подписки.