# Telegram CLI Bot Бот для выполнения CLI команд на вашем ПК через Telegram с многоуровневым меню и гибкой настройкой. ## Возможности - 🖥️ **Выполнение CLI команд** - запуск любых команд от имени пользователя - 📋 **Многоуровневое меню** - навигация через inline-кнопки - ⚙️ **Настройка из бота** - изменение имени, описания, иконки прямо в диалоге - 🎯 **Предустановленные команды** - готовые команды для файловой системы, поиска, системы и сети - 👥 **Управление доступом** - ограничение круга пользователей - 🔧 **Легкое добавление команд** - простая регистрация новых команд через код ## Установка ### 1. Клонирование репозитория ```bash cd /home/mirivlad/git git clone telegram-cli-bot cd telegram-cli-bot ``` ### 2. Создание виртуального окружения ```bash python3 -m venv venv source venv/bin/activate ``` ### 3. Установка зависимостей ```bash pip install -r requirements.txt ``` ### 4. Получение токена бота 1. Откройте [@BotFather](https://t.me/BotFather) в Telegram 2. Отправьте `/newbot` 3. Следуйте инструкциям 4. Скопируйте полученный токен ### 5. Запуск бота ```bash export TELEGRAM_BOT_TOKEN='your_token_here' python bot.py ``` ## Использование ### Команды бота | Команда | Описание | |---------|----------| | `/start` | Запустить бота, показать главное меню | | `/help` | Показать справку | | `/settings` | Открыть настройки бота | ### Главное меню - **🖥️ Выполнить команду** - ввод произвольной CLI команды - **📋 Предустановленные команды** - меню с готовыми командами - **⚙️ Настройки бота** - конфигурация бота - **ℹ️ О боте** - информация о боте ### Предустановленные команды #### Файловая система - `ls -la` - список файлов - `pwd` - текущая директория - `df -h` - свободное место - `du -sh *` - размер папок #### Поиск - `find . -name` - поиск файлов - `grep пример` - поиск по содержимому - `which command` - путь к командам #### Система - `top -n 1` - процессы - `ps aux` - список процессов - `free -h` - использование памяти - `uname -a` - информация о системе - `uptime` - время работы #### Сеть - `ip addr` - сетевые интерфейсы - `ping google` - проверка связи - `netstat` - сетевые подключения - `curl ifconfig.me` - внешний IP ### Настройка бота Через меню **⚙️ Настройки бота**: 1. **📝 Изменить имя бота** - новое отображаемое имя 2. **📄 Изменить описание** - описание бота 3. **🎨 Изменить иконку** - emoji для бота 4. **👥 Управление доступом** - whitelist пользователей ## Добавление новых команд ### Быстрое добавление через меню Найдите функцию `init_menus()` в `bot.py` и добавьте новую кнопку: ```python # В нужное меню добавьте: MenuItem("🔥 Ваша команда", "cmd_your", command="ваша_команда", icon="🔥"), ``` ### Пример добавления команды для git: ```python # В init_menus() добавьте новое меню: git_menu = [ MenuItem("git status", "cmd_git_status", command="git status", icon="📊"), MenuItem("git log", "cmd_git_log", command="git log --oneline -10", icon="📜"), MenuItem("⬅️ Назад", "preset", icon="⬅️"), ] menu_builder.add_menu("git", git_menu) # И добавьте кнопку в preset_menu: MenuItem("🔗 Git", "git_menu", icon="🔗"), ``` ### Продвинутое: регистрация через декоратор Используйте `command_registry` для сложной логики: ```python @command_registry.register("my_command") async def my_custom_command(update, context): # Ваша логика pass ``` ## Конфигурация Настройки хранятся в `bot_config.json`: ```json { "bot_name": "CLI Assistant", "bot_description": "Бот для выполнения CLI команд", "bot_icon_emoji": "🤖", "allowed_users": [], "require_confirmation": true, "working_directory": "/home/user" } ``` | Параметр | Описание | |----------|----------| | `bot_name` | Имя бота | | `bot_description` | Описание бота | | `bot_icon_emoji` | Emoji-иконка | | `allowed_users` | Список разрешённых user ID (пусто = все) | | `require_confirmation` | Требовать подтверждение перед выполнением | | `working_directory` | Рабочая директория для команд | ## Безопасность ⚠️ **Важные предупреждения:** 1. Бот выполняет команды от имени запустившего пользователя 2. Не запускайте бота от root 3. Ограничьте доступ через `allowed_users` 4. Будьте осторожны с деструктивными командами (`rm`, `dd`, etc.) ## Логи Логи сохраняются в `bot.log` в директории бота. ## Структура проекта ``` telegram-cli-bot/ ├── bot.py # Основной файл бота ├── requirements.txt # Зависимости Python ├── bot_config.json # Конфигурация (создаётся автоматически) ├── bot.log # Лог файл ├── .gitignore # Git ignore └── README.md # Документация ``` ## Требования - Python 3.8+ - Библиотеки: `python-telegram-bot`, `pyyaml` - Доступ к Telegram API ## Лицензия MIT