Commit Graph

16 Commits (master)

Author SHA1 Message Date
Vladimir 7b3d7375e6 Fix asyncio import in qwen_oauth and other improvements 2026-03-06 19:38:09 +08:00
mirivlad d2f22ee149 v0.7.2: Исправление зависания бота и обработки длинного вывода
Исправленные проблемы:
- Бот зависал после выполнения команд из кнопок меню
- 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>
2026-02-28 11:10:29 +08:00
mirivlad d20092730e fix: polling подход для ожидания кнопок вместо asyncio.Event
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 20:01:28 +08:00
mirivlad 42e1043f28 feat: добавлено логирование для отладки кнопок
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:55:35 +08:00
mirivlad d0f91d7daa fix: используем asyncio.Event для неблокирующего ожидания кнопок
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:49:19 +08:00
mirivlad 40ce40f218 fix: parse_mode используется когда мы внутри блока кода
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:33:33 +08:00
mirivlad 85947754c7 fix: кнопки удаляются сразу после нажатия, ожидание бесконечное
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:20:48 +08:00
mirivlad 4b69ee0310 fix: переписан split_message с отслеживанием состояния блока кода
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:06:40 +08:00
mirivlad 28e671af9c fix: правильная разбивка длинных блоков кода на части
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 18:30:10 +08:00
mirivlad 2557440a39 fix: номер сообщения теперь добавляется после открывающего блока кода
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 18:26:30 +08:00
mirivlad 0a8801afec fix: исправлено форматирование блоков кода при разбивке длинных сообщений
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 18:11:46 +08:00
mirivlad fbf0edc60a v0.7.2: Улучшения AI-провайдеров, инструменты и обработчики
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 18:07:57 +08:00
mirivlad e538d84e13 v0.7: AI Provider Manager для работы с любым AI-провайдером (Qwen, GigaChat)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-26 23:21:20 +08:00
mirivlad 50dcec82fc fix: восстановить работу Markdown в send_long_message
- has_markdown переименован в has_code (более точно)
- Теперь Markdown применяется ко всем сообщениям если передан parse_mode
- Блоки кода без разрывов тоже работают с Markdown

Version: 0.5.5

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-25 00:24:31 +08:00
mirivlad 04ac125da6 fix: умная разбивка длинных сообщений с сохранением форматирования
- 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>
2026-02-24 23:58:04 +08:00
mirivlad d1592c7b38 refactor: модульная структура бота (v0.5.0)
Рефакторинг кода бота для улучшения поддерживаемости:

Структура:
- 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>
2026-02-24 23:32:26 +08:00