- Full support of Bot API 5.3 (#610, #614)
- Fixed
Message.send_copy
method for polls (#603) - Updated pattern for
GroupDeactivated
exception (#549 - Added
caption_entities
field inInputMedia
base class (#583) - Fixed HTML text decorations for tag
pre
(#597 fixes issues #596 and #481) - Fixed
Message.get_full_command
method for messages with caption (#576) - Improved
MongoStorage
: remove documents with empty data fromaiogram_data
collection to save memory. (#609)
- Added full support of Bot API 5.2 (#572)
- Fixed usage of
provider_data
argument insendInvoice
method call - Fixed builtin command filter args (#556) (#558)
- Allowed to use State instances FSM storage directly (#542)
- Added possibility to get i18n locale without User instance (#546)
- Fixed returning type of
Bot.*_chat_invite_link()
methods #548 (#549) - Fixed deep-linking util (#569)
- Small changes in documentation - describe limits in docstrings corresponding to the current limit. (#565)
- Fixed internal call to deprecated 'is_private' method (#553)
- Added possibility to use
allowed_updates
argument in Polling mode (#564)
- Fixed
TypeError: Value should be instance of 'User' not 'NoneType'
(#527) - Added missing
Chat.message_auto_delete_time
field (#535) - Added
MediaGroup
filter (#528) - Added
Chat.delete_message
shortcut (#526) - Added mime types parsing for
aiogram.types.Document
(#431) - Added warning in
TelegramObject.__setitem__
when Telegram adds a new field (#532) - Fixed
examples/chat_type_filter.py
(#533) - Removed redundant definitions in framework code (#531)
- Full support for Telegram Bot API 5.1 (#519)
- Fixed sending playlist of audio files and documents (#465, #468)
- Fixed
FSMContextProxy.setdefault
method (#491) - Fixed
Message.answer_location
andMessage.reply_location
unable to send live location (#497) - Fixed
user_id
andchat_id
getters from the context at Dispatchercheck_key
,release_key
andthrottle
methods (#520) - Fixed
Chat.update_chat
method and all similar situations (#516) - Fixed
MediaGroup
attach methods (#514) - Fixed state filter for inline keyboard query callback in groups (#508, #510)
- Added missing
ContentTypes.DICE
(#466) - Added missing vcard argument to
InputContactMessageContent
constructor (#473) - Add missing exceptions:
MessageIdInvalid
,CantRestrictChatOwner
andUserIsAnAdministratorOfTheChat
(#474, #512) - Added
answer_chat_action
to theMessage
object (#501) - Added dice to
message.send_copy
method (#511) - Removed deprecation warning from
Message.send_copy
- Added an example of integration between externally created aiohttp Application and aiogram (#433)
- Added
split_separator
argument tosafe_split_text
(#515) - Fixed some typos in docs and examples (#489, #490, #498, #504, #514)
- Fixed default parse mode
- Added missing "supports_streaming" argument to answer_video method #462
- Fixed files URL template
- Fix MessageEntity serialization for API calls #457
- When entities are set, default parse_mode become disabled (#461)
- Added parameter supports_streaming to reply_video, remove redundant docstrings (#459)
- Added missing parameter to promoteChatMember alias (#458)
- Added full support of Telegram Bot API 5.0 (#454)
- Added possibility to more easy specify custom API Server (example)
- WARNING: API method
close
was named in Bot class as close_bot in due to Bot instance already has method with the same name. It will be changed inaiogram 3.0
- WARNING: API method
- Added alias to Message object
Message.copy_to
with deprecation ofMessage.send_copy
ChatType.SUPER_GROUP
renamed toChatType.SUPERGROUP
(#438)
- Fixed critical bug with getting asyncio event loop in executor. (#424)
AttributeError: 'NoneType' object has no attribute 'run_until_complete'
- Breaking change: Stop using _MainThread event loop in bot/dispatcher instances (#397)
- Breaking change: Replaced aiomongo with motor (#368, #380)
- Fixed: TelegramObject's aren't destroyed after update handling #307 (#371)
- Add setting current context of Telegram types (#369)
- Fixed markdown escaping issues (#363)
- Fixed HTML characters escaping (#409)
- Fixed italic and underline decorations when parse entities to Markdown
- Fixed #413: parse entities positioning (#414)
- Added missing thumb parameter (#362)
- Added public methods to register filters and middlewares (#370)
- Added ChatType builtin filter (#356)
- Fixed IDFilter checking message from channel (#376)
- Added missed answer_poll and reply_poll (#384)
- Added possibility to ignore message caption in commands filter (#383)
- Fixed addStickerToSet method
- Added preparing thumb in send_document method (#391)
- Added exception MessageToPinNotFound (#404)
- Fixed handlers parameter-spec solving (#408)
- Fixed CallbackQuery.answer() returns nothing (#420)
- CHOSEN_INLINE_RESULT is a correct API-term (#415)
- Fixed missing attributes for Animation class (#422)
- Added missed emoji argument to reply_dice (#395)
- Added is_chat_creator method to ChatMemberStatus (#394)
- Added missed ChatPermissions to __all__ (#393)
- Added is_forward method to Message (#390)
- Fixed usage of deprecated is_private function (#421)
and many others documentation and examples changes:
- Updated docstring of RedisStorage2 (#423)
- Updated I18n example (added docs and fixed typos) (#419)
- A little documentation revision (#381)
- Added comments about correct errors_handlers usage (#398)
- Fixed typo rexex -> regex (#386)
- Fixed docs Quick start page code blocks (#417)
- fixed type hints of callback_data (#400)
- Prettify readme, update downloads stats badge (#406)
- Added full support of Telegram Bot API 4.9
- Fixed user context at poll_answer update (#322)
- Fix Chat.set_description (#325)
- Add lazy session generator (#326)
- Fix text decorations (#315, #316, #328)
- Fix missing
InlineQueryResultPhoto
parse_mode
field (#331) - Fix fields from parent object in
KeyboardButton
(#344 fixes #343) - Add possibility to get bot id without calling
get_me
(#296)
- Added full support of Bot API 4.8
- Added
Message.answer_dice
andMessage.reply_dice
methods (#306)
- Added full support of Bot API 4.7 (#294 #289)
- Added default parse mode for send_animation method (#293 #292)
- Added new API exception when poll requested in public chats (#270)
- Make correct User and Chat get_mention methods (#277)
- Small changes and other minor improvements
- Fixed reply
KeyboardButton
initializer withrequest_poll
argument (#266) - Added helper for poll types (
aiogram.types.PollType
) - Changed behavior of Telegram_object
.as_*
and.to_*
methods. It will no more mutate the object. (#247)
- Full support of Telegram Bot API v4.6 (Polls 2.0) #265
- Aded new filter - IsContactSender (commit)
- Fixed proxy extra dependencies version #262
- #255 Updated CallbackData factory validity check. More correct for non-latin symbols
- #256 Fixed
renamed_argument
decorator error - #257 One more fix of CommandStart filter
- Get back
quote_html
andescape_md
functions
- Hot-fix of
CommandStart
filter
- Added full support of Telegram Bot API 4.5 (#250, #251)
- #239 Fixed
check_token
method - #238, #241: Added deep-linking utils
- #248 Fixed support of aiohttp-socks
- Updated setup.py. No more use of internal pip API
- Updated links to documentations (https://docs.aiogram.dev)
- Other small changes and minor improvements (#223 and others...)
- Added Message.send_copy method (forward message without forwarding)
- Safe close of aiohttp client session (no more exception when application is shutdown)
- No more "adWanced" words in project #209
- Arguments user and chat is renamed to user_id and chat_id in Dispatcher.throttle method #196
- Fixed set_chat_permissions #198
- Fixed Dispatcher polling task does not process cancellation #199, #201
- Fixed compatibility with latest asyncio version #200
- Disabled caching by default for lazy_gettext method of I18nMiddleware #203
- Fixed HTML user mention parser #205
- Added IsReplyFilter #210
- Fixed send_poll method arguments #211
- Added OrderedHelper #215
- Fix incorrect completion order. #217
- Full support of Telegram Bot API 4.4
- Fixed #143
- Added new filters from issue #151: #172, #176, #182
- Added expire argument to RedisStorage2 and other storage fixes #145
- Fixed JSON and Pickle storages #138
- Implemented MongoStorage #153 based on aiomongo (soon motor will be also added)
- Improved tests
- Updated examples
- Warning: Updated auth widget util. #190
- Implemented throttle decorator #181
- Provides latest Telegram Bot API (4.3)
- Updated docs for filters
- Added opportunity to use different bot tokens from single bot instance (via context manager, #100)
- IMPORTANT: Fixed Typo:
data
->bucket
inupdate_bucket
for RedisStorage2 (#132)
- Implemented all new features from Telegram Bot API 4.2
is_member
andis_admin
methods ofChatMember
andChatMemberStatus
was renamed tois_chat_member
andis_chat_admin
- Remover func filter
- Added some useful Message edit functions (
Message.edit_caption
,Message.edit_media
,Message.edit_reply_markup
) (#121, #103, #104, #112) - Added requests timeout for all methods (#110)
- Added
answer*
methods toMessage
object (#112) - Maked some improvements of
CallbackData
factory - Added deep-linking parameter filter to
CommandStart
filter - Implemented opportunity to use DNS over socks (#97 -> #98)
- Implemented logging filter for extending LogRecord attributes (Will be usefull with external logs collector utils like GrayLog, Kibana and etc.)
- Updated
requirements.txt
anddev_requirements.txt
files - Other small changes and minor improvements
- Implemented CallbackData factory (example)
- Implemented methods for answering to inline query from context and reply with animation to the messages. #85
- Fixed installation from tar.gz #84
- More exceptions (
ChatIdIsEmpty
andNotEnoughRightsToRestrict
)
This update will break backward compability with Python 3.6 and works only with Python 3.7+: - contextvars (PEP-567); - New syntax for annotations (PEP-563).
Changes:
- Used contextvars instead of aiogram.utils.context
;
- Implemented filters factory;
- Implemented new filters mechanism;
- Allowed to customize command prefix in CommandsFilter;
- Implemented mechanism of passing results from filters (as dicts) as kwargs in handlers (like fixtures in pytest);
- Implemented states group feature;
- Implemented FSM storage's proxy;
- Changed files uploading mechanism;
- Implemented pipe for uploading files from URL;
- Implemented I18n Middleware;
- Errors handlers now should accept only two arguments (current update and exception);
- Used aiohttp_socks
instead of aiosocksy
for Socks4/5 proxy;
- types.ContentType was divided to types.ContentType
and types.ContentTypes
;
- Allowed to use rapidjson instead of ujson/json;
- .current()
method in bot and dispatcher objects was renamed to get_current()
;
Full changelog - You can read more details about this release in migration FAQ: https://aiogram.readthedocs.io/en/latest/migration_1_to_2.html
- Bot API 4.0 (#57)
- Fixed markup-entities parsing;
- Added more API exceptions;
- Now InlineQueryResultLocation has live_period;
- Added more message content types;
- Other small changes and minor improvements.
- Fixed crashing of polling process. (i think)
- Added parse_mode field into input query results according to Bot API Docs.
- Added new methods for Chat object. (#42, #43)
- Warning: disabled connections limit for bot aiohttp session.
- Warning: Destroyed "temp sessions" mechanism.
- Added new error types.
- Refactored detection of error type.
- Small fixes of executor util.
- Fixed RethinkDBStorage
- Allow to use Socks5 proxy (need manually install
aiosocksy
). - Refactored
aiogram.utils.executor
module. - [Warning] Updated requirements list.
- Fixed API errors detection
- Fixed compability of
setup.py
with pip 10.0.0
- Added more error types.
- Implemented method
InputFile.from_url(url: str)
for downloading files. - Implemented big part of API method tests.
- Other small changes and mminor improvements.
- Fixed handling Venue's [#27, #26]
- Added parse_mode to all medias (Bot API 3.6 support) [#23]
- Now regexp filter can be used with callback query data [#19]
- Improvements in
InlineKeyboardMarkup
&ReplyKeyboardMarkup
objects [#21] - Other bug & typo fixes and minor improvements.
- Full provide Telegram Bot API 3.6
- Fixed critical error:
Fatal Python error: PyImport_GetModuleDict: no module dictionary!
- Implemented connection pool in RethinkDB driver
- Typo fixes of documentstion
- Other bug fixes and minor improvements.
- Added more methods for data types (like
message.reply_sticker(...)
orfile.download(...)
- Typo fixes of documentstion
- Allow to set default parse mode for messages (
Bot( ... , parse_mode='HTML')
) - Allowed to cancel event from the
Middleware.on_pre_process_<event type>
- Fixed sending files with correct names.
- Fixed MediaGroup
- Added RethinkDB storage for FSM (
aiogram.contrib.fsm_storage.rethinkdb
)
- Added middlewares mechanism.
- Added example for middlewares and throttling manager.
- Added logging middleware (
aiogram.contrib.middlewares.logging.LoggingMiddleware
) - Fixed handling errors in async tasks (marked as 'async_task')
- Small fixes and other minor improvements.
- Implemented
types.InputFile
for more easy sending local files - Danger! Fixed typo in word pooling. Now whatever all methods with that word marked as deprecated and original methods is renamed to polling. Check it in you'r code before updating!
- Fixed helper for chat actions (
types.ChatActions
) - Added example for media group.
- Remaked data types serialozation/deserialization mechanism (Speed up).
- Fully rewrited all Telegram data types.
- Bot object was fully rewritted (regenerated).
- Full provide Telegram Bot API 3.4+ (with sendMediaGroup)
- Warning: Now
BaseStorage.close()
is awaitable! (FSM) - Fixed compability with uvloop.
- More employments for
aiogram.utils.context
. - Allowed to disable
ujson
. - Other bug fixes and minor improvements.
- Migrated from Bitbucket to Github.