Основные изменения:
- Исправлена рекурсия в qwen_oauth.py (RecursionError при проверке токенов)
- Добавлена проверка force=True в _load_credentials()
- Бот теперь запоминает загруженные файлы в памяти ИИ (ai_chat_history + vector_memory)
- Сохранение полного абсолютного пути к файлу для корректной работы ИИ
- Исправлена совместимость с python-telegram-bot 20.7+:
- MAX_FILE_SIZE_DOWNLOAD → локальная константа
- filters.STICKER → filters.Sticker.ALL
- Обновлена версия бота до 0.8.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Основные изменения:
- Добавлена автоматическая OAuth авторизация для Qwen Code
- При первом запросе к Qwen бот отправляет ссылку на авторизацию
- После авторизации токены сохраняются в ~/.qwen/oauth_creds.json
- Добавлена команда /qwen_auth для явной авторизации
- Ссылка на авторизацию кликабельная в Telegram
Новые файлы:
- bot/utils/qwen_oauth.py — OAuth 2.0 Device Flow клиент
- authorize_qwen.sh — скрипт для ручной авторизации
Изменения:
- bot.py — проверка авторизации в handle_ai_task, qwen_auth_command
- bot/models/user_state.py — поле waiting_for_qwen_oauth
- qwen_integration.py — интеграция с OAuth модулем
- README.md — версия 0.8.1
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Основные изменения:
- Исправлено чтение вывода SSH команд (wait_and_read_ssh вместо цикла с таймаутом)
- Добавлена команда /restart_bot для перезапуска бота через sudo
- Пароль sudo запрашивается у пользователя (ИИ отключается на время ввода)
- После перезапуска бот отправляет уведомление с главным меню
- Улучшена обработка stdout/stderr в SSH инструменте
Исправленные проблемы:
- SSH команды не возвращали вывод (returncode был None до завершения процесса)
- Использован подход с параллельным чтением потоков и process.wait()
- Команда /restart_bot использует script для создания PTY
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Исправленные проблемы:
- Бот зависал после выполнения команд из кнопок меню
- PTY цикл зацикливался при ошибке чтения ([Errno 5] Input/output error)
- CallbackQuery обрабатывался неправильно (effective_user vs from_user)
- Длинные сообщения разбивались с неправильным экранированием Markdown
- Event loop блокировался при ожидании кнопок Продолжить/Отменить
Изменения:
1. bot/utils/ssh_readers.py — исправлено зависание read_pty_output()
2. bot/utils/formatters.py — переписана send_long_message() без блокировки event loop
3. bot/handlers/callbacks.py — обработка кнопок continue_output_/cancel_output
4. bot/models/user_state.py — добавлены поля для управления выводом
5. bot/services/command_executor.py — ограничитель итераций в цикле PTY
6. bot/utils/formatters.py — escape_markdown() не экранирует содержимое блоков кода
7. bot.py — мелкие исправления
Теперь:
- Кнопки меню работают корректно
- Длинный вывод разбивается на части с кнопками Продолжить/Отменить
- Бот не зависает и продолжает обрабатывать команды
- Markdown рендеринг работает правильно
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- has_markdown переименован в has_code (более точно)
- Теперь Markdown применяется ко всем сообщениям если передан parse_mode
- Блоки кода без разрывов тоже работают с Markdown
Version: 0.5.5
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- NameError: config not defined в @check_access
- Добавлен импорт from bot.config import config
Version: 0.5.3
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- find_code_blocks — поиск блоков кода
- split_message — возвращает (text, has_markdown) для каждого сообщения
- send_long_message — отправляет блоки кода с Markdown, остальное без разметки
- Блоки кода не разрываются между сообщениями
- Слинные блоки кода отправляются частями без Markdown
- Нумерация добавляется автоматически
Version: 0.5.2
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Рефакторинг кода бота для улучшения поддерживаемости:
Структура:
- bot/models/ — модели данных (Server, UserState, сессии)
- bot/utils/ — утилиты (очистка текста, форматирование, декораторы)
- bot/keyboards/ — Inline-клавиатуры и меню
- bot/services/ — бизнес-логика (выполнение команд)
- bot/handlers/ — обработчики событий (пустые для будущего заполнения)
- bot/config.py — конфигурация и глобальные объекты
Изменения:
- bot.py сокращён с 3240 до 2364 строк (-900 строк дубликатов)
- Все модели перенесены в отдельные модули
- Утилиты разделены по назначению (cleaners, formatters, decorators)
- Меню вынесено в keyboards/menus.py
- Импорты из новой структуры через bot.config и bot.models
Преимущества:
- Лучшая организация кода
- Упрощённое тестирование модулей
- Легче добавлять новый функционал
- Чёткое разделение ответственности
Version: 0.5.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>