🧩 Это продолжение моей первой статьи:
Как я сделал Telegram-бота для управления компьютером с доступом для незрячих
Там я рассказал о боте, который управляет ПК, озвучивает текст, делает скриншоты и синтезирует речь. Сейчас покажу, как встроил Telegram API-сервер в.exe
, добавил систему плагинов и улучшил доступность для незрячих.
📡 Зачем встроенный Telegram API?
После релиза первой версии стало ясно: Telegram порой ограничивает размер и скорость передачи файлов, а ещё появляется зависимость от внешнего API. Чтобы обойти эти ограничения, я решил встроить официальный сервер Telegram Bot API прямо в своё приложение.
Это позволило:
📤 передавать файлы до 2 ГБ;
⚙️ работать офлайн;
🛠 использовать Telegram как локальный инструмент, не обращаясь к внешнему API.
🛠 Как это работает
Я скомпилировал
telegram-bot-api.exe
под Windows.Запаковал его в
serverapibot.zip
и встроил в дистрибутив программы.При первом запуске приложение:
распаковывает сервер в папку
serverapibot/
;создаёт лог-файлы, конфигурации, временные каталоги;
запускает сервер с нужными параметрами через
QProcess
;автоматически перезапускает его при сбоях.
⚙ Графический интерфейс для управления сервером
Я реализовал отдельный GUI для работы с Telegram API сервером. Он позволяет:
🔐 Ввести параметры:
api-id
,api-hash
, IP-адрес, порт и путь к логам;🧾 Выбрать уровень логирования и размер лог-файлов;
📁 Указать рабочую директорию и временную папку;
☑ Включить или выключить встроенный Telegram API;
▶ Нажать одну кнопку «Старт» — и сервер запускается автоматически.
GUI полностью адаптирован под работу с экранными читалками: каждый элемент подписан, доступен по клавиатуре и читается скринридером. Навигация по логам осуществляется стрелками, названия областей логов проговариваются.
🖥 Интерфейс для незрячих
Так как я сам незрячий, я знал, насколько важно, чтобы всё работало без мыши. Интерфейс сделан с учётом:
💬 озвучивания всех элементов;
↕ удобной навигации по логам;
🧭 доступности кнопок, выпадающих списков и форм ввода;
🗃 разделения логов GUI и Telegram API в разные панели.
Используется PyQt5
, логика взаимодействия повторяет поведение привычных программ, понятных даже тем, кто пользуется только клавиатурой и экранными читалками (например, NVDA).
🔌 Система плагинов
Я хотел, чтобы функциональность бота можно было расширять без изменений в коде. Поэтому реализовал гибкую систему плагинов с полной изоляцией через venv
.
Каждый плагин — это ZIP-файл с:
.py
файлом (основной код);.json
файлом с настройками:
{
"name": "пример‑плагина",
"dependencies": ["requests", "chardet"],
"
🚀 Как работает установка:
Вы отправляете ZIP-файл в Telegram-бота.
Бот:
распаковывает его в папку
plugins/имя
;создаёт виртуальное окружение
venv
;ставит зависимости из
dependencies
;импортирует
.py
и вызываетinit_plugin(dp)
;добавляет кнопки и команды в Telegram-интерфейс.
Поддерживается автоматическая загрузка, перезапуск, сброс состояния и удаление плагина прямо через Telegram.
📱 Управление плагинами через Telegram
Через Telegram можно:
🟢 включать и выключать автозапуск плагинов;
🔄 перезапускать любой плагин;
🧹 сбрасывать кэш и настройки;
📦 создавать резервные ZIP-архивы плагинов;
📤 скачивать обратно любой установленный плагин;
🗑 удалять без следа.
Все функции доступны через команды и клавиатуру Telegram — даже если вы не программист, вы сможете управлять всем через бот.
💡 Пример: file_manager — демонстрационный плагин
Чтобы продемонстрировать архитектуру, я написал плагин file_manager
, который позволяет:
📂 просматривать содержимое папок;
📄 читать текстовые файлы в любой кодировке (определяется через
chardet
);🗑 удалять файлы;
📥 загружать файлы в систему;
📤 отправлять их обратно в Telegram.
Этот плагин прост, стабилен и демонстрирует изоляцию, установку и использование зависимостей через venv
.
📦 Скачать плагин можно на GitHub:
https://github.com/andreykadelite/AutoCraft-Bot
📈 Что получилось
🧠 Telegram-бот с плагин-платформой;
🚀 встроенный локальный Telegram API;
🖥 доступный GUI-интерфейс;
🔌 модульная архитектура;
💬 Telegram-менеджер для управления плагинами;
♿ полная доступность для незрячих пользователей.
👥 Кому подойдёт
Этот проект подойдёт вам, если:
вы хотите сделать расширяемого Telegram-бота;
не хотите зависеть от стороннего API;
ищете решение с удобной установкой и обновлением;
🔗 Ссылки
Первая часть: https://habr.com/ru/articles/922332/
GitHub проекта: https://github.com/andreykadelite/AutoCraft-Bot
Спасибо, что прочитали!
Хочу сделать ещё несколько плагинов и подготовить визуальный мастер установки — пишите, если это интересно.
🧩 Особенности сборки и планы на будущее
Для корректной работы плагинов рядом с .exe
или в папке с исходниками должен лежать архив python.zip
, содержащий нужные стандартные модули Python. Это позволяет использовать venv
даже в полностью изолированной сборке.
🔧 Полную рабочую сборку с telegram-bot-api
, встроенным сервером, GUI и плагинами я уже выложил на GitHub в разделе релизов:
https://github.com/andreykadelite/AutoCraft-Bot/releases
🔮 Что планирую дальше
📥 Возможность загружать плагины прямо из Telegram или по ссылке — онлайн-установка без ZIP-файлов;
🎥 Добавить запись видео с экрана с последующей отправкой в Telegram;
🎙 Реализовать запись звука с микрофона в удобном формате (OGG/WAV) и интеграцией в бота;
🔄 Улучшить систему обновлений плагинов — чтобы можно было обновлять отдельно, без удаления старой версии.
Все эти идеи — не просто концепты. Многие из них уже в разработке или тестируются.
🖼 Немного визуала: как выглядит интерфейс

Чтобы не быть голословным, вот как всё это выглядит на практике:
🧭 Главное окно AutoCraft Bot
Здесь можно ввести токен, PIN-код, выбрать режим подключения (локальный сервер или Telegram API), и — одним нажатием — запустить бота. Все логи отображаются в реальном времени, удобно прокручиваются и доступны для скринридеров. Кнопки имеют озвучку и понятные подписи.

🛠 Настройка локального Telegram API сервера
Здесь всё наглядно: вводите API ID
, API Hash
, IP, порт, указываете каталоги и исполняемый файл сервера, задаёте уровень логирования и объём логов. А потом просто нажимаете Старт — и сервер работает!
Каждая настройка подписана, можно пользоваться только клавиатурой. В нижней части окна — отдельные панели логов: для UI и для самого Telegram API. Всё разделено и читабельно даже с NVDA или другими читалками.