Changes to public API are marked as
^
. Possible changes to public API are marked as^?
.
-
v6.0.0
- Notes
- This version focuses on removing features that are too hard or meaningless to support. If something you really want was deleted - open issue with discussion.
- Added
- Example plugins that works with storage.
decorators.py
module with utility decorators for plugins (experimental).
- Features
- ^(Core) Changed the way plugins are loaded from paths.
- ^(Core) Changed shape of
RequestException
. - ^(Core) Deleted
logger
inkutana
module. - ^(Core) Reworked storages.
- ^(Core) Deleted
expect_sender
andexpect_receiver
, addedwith_storage
as functional replacement. - ^(Core) Reworked Attachment, Message, and Update objects.
- ^(Core) Reworked context for processors.
- ^(Core) Reworked backends implementations.
- ^(Core) Reworked plugins and their attributes/methods.
- (Utils) Added watchdog to requirements and updated Makefile.
- (Core, Telegram, VKontakte) Replaced aiohhtp with httpx everywhere it was possible.
- (Core) Added
get
method to storage's document.
- Removed
- (i18n)
i18n
module deleted, just usegettext
, if needed. - (docs) Removed docs.
- (i18n)
- Notes
-
v5.2.0
- Features
- ^ (Telegram) Unsupported attachments now raise exceptions.
- (Internal) Added
pick_by
to helpers. - (Telegram) Added support for
title
parameter in attachments (closes #66).
- Fixes
- ^? (Core) Removed loop arguments for Lock, Queue e.t.c.
- (Examples) "Document" now sends as actual document.
- (i18n)
collect_from
option is now used. - (Telegram)
api_url
option is now used.
- Features
-
v5.1.0
- (VKontakte) Added decorator
@plugin.vk.on_callbacks
(closes #58). - (VKontakte) Changed API version from
5.122
to5.131
. - Added requests capturing to debug backend.
- Fixed support for python versions >= 3.9.
- Updated
reply
to raise if nodefault_target_id
found. - Updated
on_commands
to accept messages without prefix (or with alternative prefixes) if bot was mentioned in message (in private and in group chats). - Updated logs to not write to file.
- (VKontakte) Added decorator
-
v5.0.5
- ^(VKontakte) Attachments with type
image
now returns largest image. - Added support for expect_sender for telegram 'callback_query'.
- ^(VKontakte) Attachments with type
-
v5.0.4
- Fixed issue with incorrect merge of multiple
PayloadRouter
. - Renamed
alike
method tocan_merge
in routers.
- Fixed issue with incorrect merge of multiple
-
v5.0.0
- ^ Removed
Storage
,set_state
,group_state
,user_state
,storage
. - ^ Greatly reduced support for graffiti.
- Renamed
perform_api_call
toexecute_request
. - Renamed
perform_updates_request
toacquire_updates
. - Renamed
perform_send
toexecute_send
. - Added
i18n
submodule for translating strings in plugins. Added section describing it to the docs. - Added options to provide attributes to plugins through constructor.
- Added
default_storage
option to Kutana. - Added
active
attribute for backends; if it's False, kutana will not process updates from this backend. - Added
name
attribute to backends. - Added
get_backend
method for getting backends by name. - Added stripping of mentions for the telegram bot.
- Added
VkontakteCallback
;Vkontakte
is now alias forVkontakteLongpoll
. - Added proxy for
HandlerResponse.COMPLETE
andHandlerResponse.SKIPPED
to the context. - Updated
on_before
,on_after
,on_start
,on_exception
andon_shutdown
to accept priority argument and now multiple handlers can be used. - Updated "stream" plugin to be more adequate.
- Updated example to be more manageable.
- Updated
vk.on_payloads
to check objects not strictly (see #57 for details). - Fixed
on_unprocessed_messages
not working with empty messages.
- ^ Removed
-
v4.3.0
- Added router for vkontakte's chat actions + tests
- ^ Renamed some plugin's decorators. Old decorators will
still work but is considered deprecated. It's possible,
that this change will be undone, or further updated. List
of changed names:
on_any_message
->on_messages
on_any_unprocessed_message
->on_unprocessed_messages
on_any_update
->on_updates
on_any_unprocessed_update
->on_unprocessed_updates
on_payload
->on_payloads
-
v4.2.0
- Added
router_priority
to plugin's registrators to allow more precise ordering of handlers. - Added handlers for raw updates
- Fixed merging of 'different' routers further
- Updated comments and documentation for context and plugins
- Added
-
v4.1.6
- ^? Fixed merging of 'different' routers
- Added tests for routers merges
-
v4.1.5
- Fixed
.send_message
with long messages. - Fixed
.reply
with non-str argument. - Fixed
.resolve_screen_name
for not found users. - Fixed
.body
with command and multiline body.
- Fixed
-
v4.1.4
- Fixed bugs in windows
-
v4.1.2
- Improved storage descriptions
- Improved states processes
- Removed unused attribute
- Updated tests and docs
-
v4.1.1
- Updated example plugins
- Improved error messages
-
v4.1.0
- Fixed case mistake in CommandsRouter
- Added better API for backends
- Added example for background actions
-
v4.0.0
- ^ Dramatically changed API
- Fixed unknown memory leak
- ^ Added routers for more efficient updates dispatching
- Added more adequate documentation
- Added test with 100% coverage
- ^ Updated examples
- ^ Updated Makefile
- ^ Updated codestyle
- ^ Changed shape of
RequestException
-
v3.2.1
- Fixed issue with uploading documents to telegram
-
v3.2.0
- ^ Method
upload_doc
for Vkontakte now acceptstype
as well asdoctype
keywords. - Now graffiti uploads correctly.
- Updated example "document" and renamed it to "documents".
- ^ Method
-
v3.1.0
- ^
.upload_doc()
now requires filename. - Added examples to
example/plugins
. - Updated CI configurations.
- Rebranded engine to library.
- ^
-
v3.0.0
- ^ All errors callbacks removed. Now Environment's method "after_process"
is used. Now when error is happened, bot will not write anything to
the user. Use plugins's
on_after_processed
decorator to add your custom behavior. - ^ Added
get
method for Environment. - ^ Removed Plugin's
register_special
method. - ^ Removed all "early"-related code. It was really messy. Everything now is works with priority.
- ^ If your want to make plugin that does something befire other plugins - you should split yout plugin into two parts: one with high priority, other with normal.
- ^ Modules now can have multiple plugins with use of
plugins
andplugin
module-level variables. - ^ Only one dispose or startup callback can be present on one plugin.
- ^ Executor's
register*
methods no longer returns decorators. - ^ Plugin's arguments like "body", "args" e.t.c. now stored in environment.
- ^ Renamed Kutana's
storage
toconfig
- ^ Executors removed entirely, it's functions moved to
Kutana
class. - ^ Removed
load_value
method. - ^ Renamed manager's
type
to_type
. - ^ Renamed manager's
get_background_coroutines
tostartup
. - ^ Added
Plugin.on_message
decorator. - Startup now accepts application.
- Now kutana objects are referred as
app
. - Renamed Kutana's "process_update" to "process".
- Processing is now done inside on Environment.
- Callbacks storing changed.
- ^ All errors callbacks removed. Now Environment's method "after_process"
is used. Now when error is happened, bot will not write anything to
the user. Use plugins's