Skip to content

feat: добавлены новые примеры с вносом небольших правок#154

Merged
love-apples merged 6 commits into
mainfrom
feat/new-examples
Jun 5, 2026
Merged

feat: добавлены новые примеры с вносом небольших правок#154
love-apples merged 6 commits into
mainfrom
feat/new-examples

Conversation

@love-apples

Copy link
Copy Markdown
Owner

closes #73, closes #78

Что изменено

  • Добавлены и обновлены примеры в examples/:
    • 12_private_chat_management_bot.py — управление участниками закрытого чата: список, добавление, удаление, блокировка, чтение Chat.link.
    • 13_manual_events_bot.py — ручная подача событий в Dispatcher без polling/webhook.
    • 14_download_media_bot.py — минимальный пример скачивания медиа через download_file, download_bytes, download_bytes_io.
  • Обновлён examples/README.md: добавлены разделы для новых примеров и исправлена нумерация.
  • В 05_media_bot.py:
    • /photo и /upload используют logo.png;
    • /buffer отправляет logo.png из bytes через InputMediaBuffer;
    • для аудио используется SenderAction.SENDING_AUDIO.
  • Исправлена обработка upload-ответа для изображений:
    • теперь принимаются {"photos": {...}}, {"photos": "..."} и {"token": "..."}.
  • Исправлено скачивание файлов:
    • download_file больше не падает на валидном aiohttp response с closed=True, если response не был явно released.

@codecov

codecov Bot commented May 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

PR добавляет и обновляет примеры использования SDK в examples/ (в т.ч. скачивание медиа, ручная подача событий, управление приватным чатом), а также правит логику скачивания файлов, чтобы download_file/_fetch_content_stream не падал на валидном aiohttp.ClientResponse с closed=True, если response не был явно released.

Changes:

  • Добавлены новые примеры 12_*, 13_*, 14_* и обновлён examples/README.md (структурирование/нумерация).
  • Обновлён пример 05_media_bot.py (использование logo.png, отправка фото из bytes через InputMediaBuffer, action для аудио).
  • Изменена проверка в _fetch_content_stream с response.closed на response._released и расширены тесты на этот кейс.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
maxapi/connection/base.py Меняет условие, при котором скачивание запрещено (ориентируется на response._released).
tests/test_download_file.py Добавляет/уточняет тесты на чтение stream при closed=True и запрет чтения при released=True.
examples/README.md Добавляет разделы для новых примеров и правит оглавление.
examples/11_download_urls.py Уточняет инструкции запуска и улучшает извлечение URL вложений (в т.ч. для видео).
examples/12_private_chat_management_bot.py Новый пример управления участниками приватного чата и чтения Chat.link.
examples/13_manual_events_bot.py Новый пример ручной подачи событий в Dispatcher без polling/webhook.
examples/14_download_media_bot.py Новый минимальный пример скачивания медиа (file/bytes/BytesIO).
examples/05_media_bot.py Перевод примера на logo.png, буферную отправку и корректный SenderAction для аудио.
Comments suppressed due to low confidence (1)

tests/test_download_file.py:1033

  • После изменения сообщения в _fetch_content_stream тест нужно синхронизировать с новым текстом DownloadFileError, иначе он будет падать по несовпадению regex.
        with pytest.raises(
            DownloadFileError, match="response соединение закрыто"
        ):

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread maxapi/connection/base.py Outdated
Comment on lines 383 to 384
if getattr(response, "_released", False) is True:
raise DownloadFileError("response соединение закрыто")

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

При closed не работало =(
Проверю повторно

Comment thread tests/test_download_file.py Outdated
Comment on lines +991 to +992
assert response.closed is True
assert response._released is False
@love-apples love-apples merged commit 2576d68 into main Jun 5, 2026
13 checks passed
@love-apples love-apples deleted the feat/new-examples branch June 5, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants