aiogram/CHANGES/1761.feature.rst

36 lines
3.1 KiB
ReStructuredText
Raw Normal View History

Added full support of the Bot API 9.4 (#1761) * Bump API schema to version 9.4, add new object types, methods, and properties. * Add tests for `ChatOwnerChanged` and `ChatOwnerLeft` message types * Add tests for `GetUserProfileAudios`, `RemoveMyProfilePhoto`, and `SetMyProfilePhoto` methods * Bump version * Update Makefile variables and refactor `test_get_user_profile_audios.py` * Document new features and updates from Bot API 9.4 in changelog * Add `ButtonStyle` enum to represent button styles in the Telegram API * Fix review issues from PR #1761 - Remove stray '-' artifact from GameHighScore docstring and butcher schema - Fix Makefile reformat target scope inconsistency (ruff check --fix) - Fix ButtonStyle enum source URL (#chat -> #inlinekeyboardbutton) - Add User.get_profile_audios() shortcut method (parallel to get_profile_photos) - Test ChatOwnerLeft with new_owner=None (edge case) - Add VideoQuality type and Video.qualities nesting tests - Add User.get_profile_audios() test Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Revert "Fix review issues from PR #1761" This reverts commit 2184e98988fd14de2347e43d9ed5a938d27a76e4. * Update source links for `ButtonStyle` documentation to reflect accurate API references * Fix review issues from PR #1761 (#1762) * Fix review issues from PR #1761 - Remove stray '-' artifact from GameHighScore docstring - Fix Makefile reformat target scope inconsistency (ruff check --fix) - Add User.get_profile_audios() shortcut method (parallel to get_profile_photos) - Test ChatOwnerLeft with new_owner=None (edge case) - Add VideoQuality type and Video.qualities nesting tests - Add User.get_profile_audios() test Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Address review comments: use fixture and variables in tests, add changelog Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Address review follow-ups for PR #1762 --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * Reformat code * Shut up, ruff --------- Co-authored-by: latand <latand666@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Kostiantyn Kriuchkov <36363097+Latand@users.noreply.github.com>
2026-02-10 23:43:52 +02:00
Updated to Bot API 9.4 (February 9, 2026)
**New Features:**
- Bots with Premium subscriptions can now use custom emoji directly in messages to private, group, and supergroup chats
- Bots can create topics in private chats via the :class:`aiogram.methods.create_forum_topic.CreateForumTopic` method
- Bots can prevent users from creating/deleting topics in private chats through BotFather settings
**New Fields:**
- Added :code:`allows_users_to_create_topics` field to :class:`aiogram.types.user.User` class - indicates whether the user allows others to create topics in chats with them
- Added :code:`icon_custom_emoji_id` field to :class:`aiogram.types.keyboard_button.KeyboardButton` and :class:`aiogram.types.inline_keyboard_button.InlineKeyboardButton` classes - allows displaying custom emoji icons on buttons
- Added :code:`style` field to :class:`aiogram.types.keyboard_button.KeyboardButton` and :class:`aiogram.types.inline_keyboard_button.InlineKeyboardButton` classes - changes button color/style
- Added :code:`chat_owner_left` field to :class:`aiogram.types.message.Message` class - service message indicating chat owner has left (type: :class:`aiogram.types.chat_owner_left.ChatOwnerLeft`)
- Added :code:`chat_owner_changed` field to :class:`aiogram.types.message.Message` class - service message indicating chat ownership has transferred (type: :class:`aiogram.types.chat_owner_changed.ChatOwnerChanged`)
- Added :code:`qualities` field to :class:`aiogram.types.video.Video` class - list of available video quality options (type: :code:`list[`:class:`aiogram.types.video_quality.VideoQuality`:code:`]`)
- Added :code:`first_profile_audio` field to :class:`aiogram.types.chat_full_info.ChatFullInfo` class - user's first profile audio
- Added :code:`rarity` field to :class:`aiogram.types.unique_gift_model.UniqueGiftModel` class
- Added :code:`is_burned` field to :class:`aiogram.types.unique_gift.UniqueGift` class
**New Methods:**
- Added :class:`aiogram.methods.set_my_profile_photo.SetMyProfilePhoto` method - allows bots to set their profile photo
- Added :class:`aiogram.methods.remove_my_profile_photo.RemoveMyProfilePhoto` method - allows bots to remove their profile photo
- Added :class:`aiogram.methods.get_user_profile_audios.GetUserProfileAudios` method - retrieves a user's profile audio list
- Added :meth:`aiogram.types.user.User.get_profile_audios` shortcut - creates a prefilled :class:`aiogram.methods.get_user_profile_audios.GetUserProfileAudios` request with :code:`user_id`
**New Types:**
- Added :class:`aiogram.types.chat_owner_left.ChatOwnerLeft` type - describes a service message about the chat owner leaving the chat
- Added :class:`aiogram.types.chat_owner_changed.ChatOwnerChanged` type - describes a service message about an ownership change in the chat
- Added :class:`aiogram.types.video_quality.VideoQuality` type - describes available video quality options
- Added :class:`aiogram.types.user_profile_audios.UserProfileAudios` type - represents the collection of audios displayed on a user's profile
Source: https://core.telegram.org/bots/api-changelog#february-9-2026