Список изменений⚓︎
1.3.0⚓︎
Добавлено:
- Механизм health-check для отслеживания состояния подключения бота:
- push-модель через callback
Bot(on_health_check=func_callback), который вызывается при изменении статуса подключения; - pull-модель через метод
bot.health_check(), который возвращает текущее состояние бота. - статусы
connected,authorizedиdisconnected.
- push-модель через callback
- Поддержка
bot.me_idдля хранения идентификатора авторизованного бота. - Шорткат
message.mention, который возвращаетTrue, если в сообщении упомянут текущий бот или используется@all. - Модуль форматирования
trueconf.utils.formattingдля удобного построения HTML/Markdown-сообщений через классы:Text,Bold,Italic,Underline,Strikethrough,Link,Mention,AllMention. - Зависимость
truststoreдля работы с системным хранилищем доверенных сертификатов. - Тип
SSLVerifyдля унифицированной типизации параметраverify_ssl:bool | str | ssl.SSLContext. - Свойство
bot.me_chatкак новое имя для полученияchat_idчата "Избранное".
Изменено:
- Обновлена логика работы
verify_ssl:verify_ssl=Trueиспользует системное хранилище доверенных сертификатов черезtruststore;verify_ssl=Falseотключает проверку сертификата;verify_ssl="/path/to/ca.pem"использует пользовательский CA bundle;verify_ssl=ssl.SSLContext(...)использует переданный SSL-контекст.
- Обновлена SSL-логика для WebSocket-подключений: теперь используется единый
self.ssl_context, созданный черезbuild_ssl_context(...). - Обновлено логирование при инициализации бота: теперь в лог выводится человекочитаемая информация о SSL-контексте.
Исправлено:
- Обработка неполной цепочки сертификатов заканчивалась неудачей. Теперь цепочка сертификатов проверяется успешно за счёт возможности использовать системное хранилище через
truststoreили передавать собственный SSL-контекст.
Устарело:
- Асинхронное свойство
bot.me, которое возвращаетchat_idчата "Избранное", помечено как устаревшее. Используйтеawait bot.me_chatвместо него.
Документация:
- Интегрирован ИИ-ассистент (виджет чата Context7): интерактивный помощник для консультаций по коду и документации.
- Добавлен новый раздел документации Отправка сообщений с описанием:
- получения
chat_id; - отправки текстовых сообщений через
bot.send_message(...); - отправки ответа через
reply_message_id; - пересылки сообщений через
bot.forward_message(...); - форматирования текста через
trueconf.utils.formatting; - ограничения длины сообщения в 4096 символов и использования
safe_split_text(...).
- получения
- Добавлено описание health-check в документацию:
- push-модель через callback;
- pull-модель через
bot.health_check(); - пример совместного использования с HTTP health endpoint.
- Добавлены и обновлены docstring для модуля форматирования,
Message.mention,verify_sslи health-check API. - Добавлены новые разделы: Шорткаты, Ограничения, Formatting, Exceptions.
1.2.3⚓︎
Добавлено:
- Добавлен таймаут ожидания ответа сервера — 10 секунд. Если ответ не будет получен за это время, будет вызвано исключение
asyncio.TimeoutError:Request to {self.__api_method__} timed out after {timeout}s(#12).
Исправлено:
- Исправлены ситуации, когда Mashumaro не мог распарсить ответ, из-за чего приложение могло завершиться с ошибкой (#8, #11).
1.2.2⚓︎
Исправлено:
- Исправлена отсутствующая зависимость: пакет
packaging, необходимый для проверки версии библиотеки при запуске бота.
1.2.1⚓︎
Добавлено:
- Добавлена поддержка TrueConf Server 5.5.4.
- Добавлен флаг
receive_system_messagesвBot()иBot.from_credentials()для включения или отключения получения системных сообщений. - Добавлен новый метод
bot.get_chat_participant(), который заменяетbot.has_chat_participant().
Исправлено:
- Исправлена поддержка TrueConf Server 5.5.3+. Удалена лишняя проверка версии, из-за которой код не запускался при использовании версии библиотеки 1.2.0.
- Исправлены ссылки в документации на
llms.txtиllms-full.txt.
Изменено:
- При получении информации о файле через
bot.get_file_info(file_id=...)ответ теперь возвращает полеfile_idвместоinfo_hash.
Устарело:
- Метод
bot.has_chat_participant()помечен как устаревший. Используйтеbot.get_chat_participant()вместо него.
1.2.0⚓︎
Добавлено:
- Добавлена поддержка TrueConf Server 5.5.3, включая:
- изменение названия чата с помощью
bot.edit_chat_title(...); - изменение аватара чата с помощью
bot.edit_chat_avatar(...); - очистку истории чата с помощью
bot.clear_chat_history(...); - получение лимитов файлового хранилища с помощью
bot.get_file_info_upload_limits(...); - новый подход к передаче файлов, при котором параметр
file_nameтеперь обязателен дляFSInputFile(...)и других методов загрузки файлов.
- изменение названия чата с помощью
- Добавлено кэширование настроек лимитов файлового хранилища. Эти настройки теперь используются для предварительной проверки перед загрузкой, и библиотека вызывает исключение, если файл не соответствует заданным ограничениям.
- Добавлены библиотеки
python-magicиfiletypeдля более надежного определения типа файла по magic numbers (байтовым сигнатурам). - Добавлено автоматическое добавление расширения файла, если оно отсутствует в имени файла.
- Улучшена стабильность WebSocket-соединения: добавлены экспоненциальная задержка и настраиваемая стратегия повторных подключений. Теперь можно управлять максимальным количеством попыток повторного подключения через
ws_max_retriesи максимальной задержкой между попытками черезws_max_delay(#6). - Добавлена проверка версии TrueConf Server. Теперь библиотека вызывает
RuntimeErrorс инструкциями по обновлению, если обнаружена несовместимая версия сервера. - Добавлена утилита
safe_split_textдля безопасного разделения длинных сообщений, превышающих 4096 символов, на части длиной до 4096 символов. Это особенно полезно для ИИ-агентов, которые генерируют длинные ответы. - Добавлены сборки документации, удобные для ИИ:
llms.txtиllms-full.txt. - Добавлено и расширено логирование.
Исправлено:
- Исправлена проблема с отправкой стикеров в TrueConf Server 5.5.3+.
- Исправлена проблема #7.
- Исправлены различные мелкие ошибки и внесены общие улучшения.
Устарело:
- Параметры
filenameиmimetypeтеперь помечены как устаревшие. - Перейдите на новые имена параметров в формате
snake_case, так как старые параметры будут удалены в будущих версиях.
1.1.10⚓︎
Исправлено:
- Исправлено отсутствие параметра
file_idвSendFileResponse.
1.1.9⚓︎
Добавлено:
- Добавлена проверка версии TrueConf Server. Теперь библиотека вызывает
RuntimeErrorс инструкциями по обновлению, если обнаружена несовместимая версия сервера.
1.1.8⚓︎
Исправлено:
- Добавлена поддержка
verify_sslдля WSS-соединений. Ранее проверка SSL безусловно отключалась при включенномhttps; теперь она корректно управляется флагом конфигурации.
1.1.7⚓︎
Добавлено:
- Добавлены шорткаты
reply_photo,reply_documentиreply_stickerв классMessage. - Добавлена поддержка
reply_message_idв нескольких методах и в классеSendFile.
Исправлено:
- Исправлено значение
quote_fields=Falseвaiohttp.FormData. - Установлено значение по умолчанию
Noneдляlast_messageвGetChatByIdResponse(исправляет #4).
Устарело:
reply_messageтеперь помечен как устаревший. Используйтеreply_message_idвместо него.
1.1.6⚓︎
Рефакторинг:
- Локальное использование
verify_sslзаменено наself.verify_sslв методах класса.
1.1.5⚓︎
Исправлено:
- Предотвращено зависание
run(), если задача подключения завершается с ошибкой. ApiErrorExceptionи другие ошибки теперь корректно передаются вызывающему коду.
1.1.4⚓︎
Исправлено:
- Удалено поле
chat_idизRemoveChatResponse(#1).
1.1.3⚓︎
Исправлено:
- Исправлено распространение событий для нескольких роутеров и подроутеров.
1.1.2⚓︎
Добавлено:
- Обновлен статус разработки.
- Добавлен
typing_extensionsв зависимости. - Добавлен и обновлен бейдж загрузок.
- Добавлены импорты
SelfиUnpackизtyping_extensions.
Исправлено:
- Исправлена неработающая функциональность шорткатов
Message.
1.1.1⚓︎
Добавлено:
- Новые классы для работы с файлами:
FSInputFile,BufferedInputFile,URLInputFile. Подробнее — в документации. - Поддержка отображения истории сообщений
display_history = Trueпри добавлении пользователя в групповой чат или канал. - Поддержка запроса и события для:
- изменения роли в групповом чате или канале (запрос, уведомление);
- создания чата “Избранное” (запрос, уведомление).
- Возможность отправки файлов с подписью (
caption). - Шорткат
.save_to_favorites()для быстрого сохранения сообщения в чат "Избранное". - Асинхронное свойство
await bot.me, возвращающееchat_idчата "Избранное".
Исправлено:
- Стикеры, отправленные через
bot.send_sticker(), отображались с фоном из-за некорректного MIME-типа. - Метод
.remove_participant_from_chat()не работал при указании неполного TrueConf ID. - Ошибка при распаковке списка участников из-за некорректного алиаса.
- Иногда при получении токена с помощью
.from_credentials()возникала ошибка400 Bad Requestsпри использовании цифрового (digit) пароля.
Изменено:
- Свойство
bot.server_nameстало асинхронным. Используйте его какawait bot.server_name.
1.0.0⚓︎
🎉 Первый релиз!
- Стабильная версия библиотеки python-trueconf-bot.
- Поддержка всех основных методов API TrueConf ChatBot.
- Псевдонимы и сочетания клавиш в стиле aiogram (message.answer, message.reply и т. д.).
- Асинхронная передача данных по протоколу WebSocket.
- Работа с файлами (отправка и загрузка).
- Документация: trueconf.github.io/python-trueconf-bot/
- PyPI: pypi.org/project/python-trueconf-bot/