Commit Graph

12 Commits (dd70d4b29fb79c96d3c457035373009a17594d5e)

Author SHA1 Message Date
mirivlad dd70d4b29f fix: улучшение обработки вывода CLI команд с ANSI-кодами и прогресс-барами
Изменения:
- Очистка ANSI-кодов через re.sub() вместо pyte
- Обработка \r для прогресс-баров (схлопывание в финальный результат)
- Удаление дублирующегося текста вида "0% [текст] 0% [текст]"
- Форматирование вывода: первые 5 + последние 10 строк
- Индикация количества пропущенных строк

Результат:
- Вместо 100+ строк мусора — 5-15 строк чистого вывода
- Корректная обработка sudo команд с запросом пароля
- Удалена зависимость от pyte

Пример:
sudo apt update теперь показывает список репозиториев и итог,
без прогресс-баров "Чтение списков пакетов… 95%"

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-24 03:40:45 +08:00
mirivlad 7a110e6974 feat: CRUD для серверов через Telegram меню
Возможности:
- Добавление сервера через пошаговую форму (имя, host, port, user, tags)
- Редактирование сервера (выбор поля для изменения)
- Удаление сервера (кроме local)
- Сохранение изменений в .env автоматически

UI:
- Меню серверов с кнопками управления (⚙️)
- Пошаговый ввод с валидацией
- Кнопки отмены и пропуска тегов
- Индикация текущего состояния

Серверы:
- add_server(name, host, port, user, tags)
- update_server(name, host, port, user, tags)
- delete_server(name)
- save_to_env() - сохраняет в .env файл

Валидация:
- Имя: только латиница, дефисы, подчёркивания
- Порт: число 1-65535
- Теги: список через запятую

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 17:25:32 +08:00
mirivlad 4888508795 fix: исправлено получение имени пользователя для local сервера
- Использован getpass.getuser() вместо os.getenv('USER')
- Добавлена обработка исключений для надёжности

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 17:07:35 +08:00
mirivlad 655de4743c feat: v2.0 - Мульти-серверная архитектура с SSH
Новые возможности:
- Класс Server и ServerManager для управления серверами
- Конфигурация серверов через .env (SERVERS, SSH_KEY_PATH)
- Меню выбора сервера с динамическим обновлением
- Выполнение команд через SSH на удалённых серверах
- Индикатор текущего сервера в UI
- Персональная рабочая директория для каждого сервера
- Поддержка составных команд с cd через SSH

Формат конфигурации серверов:
SERVERS=name|host|port|user|tags,name|host|port|user|tags

Изменения:
- + asyncssh==2.16.0 в зависимости
- ~ .env.example: добавлены SERVERS, SSH_KEY_PATH, DEFAULT_SERVER
- ~ bot.py: ~600 строк нового кода
- ~ menu: добавлено 🖥️ Выбор сервера

Настройки состояния пользователя:
- current_server: имя текущего сервера (по умолчанию 'local')
- working_directory: сбрасывается при смене сервера

Безопасность:
- known_hosts отключён для простоты (можно включить в продакшене)
- SSH ключ через client_keys (путь из .env)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 16:59:52 +08:00
mirivlad 96d2577415 release: v1.0 - Telegram CLI Bot
Основные изменения:
- Перенос конфигурации из bot_config.json в .env
- Удалено хранение токена в JSON (только переменные окружения)
- Добавлена проверка прав доступа через ALLOWED_USERS
- Декоратор @check_access для защиты хендлеров
- Настройки бота: BOT_NAME, BOT_DESCRIPTION, BOT_ICON_EMOJI, WORKING_DIRECTORY
- python-dotenv для загрузки переменных окружения
- Обновлён run.sh для работы с .env
- Убрана установка имени/описания при запуске (rate limit fix)
- Удалён функционал изменения настроек через бота (только через .env)
- Обновлена документация

Безопасность:
- Токен только в .env (не коммитится)
- Проверка прав доступа по списку ALLOWED_USERS
- bot_config.json удалён

Файлы:
- + .env.example (шаблон конфигурации)
- - bot_config.json
- ~ bot.py, run.sh, README.md, requirements.txt

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 16:52:06 +08:00
mirivlad c2f62295b7 Add /menu command to show main menu with buttons
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 16:26:01 +08:00
mirivlad d7f071d4d2 Save working directory after compound cd commands
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 16:17:46 +08:00
mirivlad 5472ea4048 Fix cd parsing for compound commands
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 16:15:46 +08:00
mirivlad 8070762310 Add working directory per user with cd command support
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 16:02:08 +08:00
mirivlad c852b09148 Simplify: any text message is now a CLI command
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 15:57:03 +08:00
mirivlad e2453cb60c Add token prompt and save to config on first run
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 15:48:15 +08:00
mirivlad 75abe7bcf8 Initial commit: Telegram CLI Bot with multi-level menu
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 15:41:48 +08:00