Changelog¶
This changelog is new
Previously, all changelogs were only available in the GitHub releases. Now, they will be additionally available in the documentation.
Unreleased¶
These changes are not in any released version.
You can only get these changes by installing the library from GitHub. This is not recommended in production, as these changes are often not properly tested.
However, if you encounter an issue with these changes, you should open an issue on GitHub so that we can release them sooner!
v1.1.1 (2024-06-26)¶
- Heavy CI improvements (2024-05-08 -> 2024-06-15)
- Deprecated unimplemented
force_writeparameter in someBaseAttachment(and subclass) methods. (2024-06-15)
v1.1.0.post3 (2024-04-16)¶
New features¶
- Added
CHANGELOG.md(and consequently, this page) to documentation. (2024-02-08) NioBot._get_idnow tells you what object it couldn't identify in the raised exception. (2024-02-11)NioBot.mount_modulenow warns you if you define a customsetup()that doesn't update the command or event register. (2024-02-11)
v1.1.0.post2 (2024-02-08)¶
New features¶
- Added
auto_read_messageskey word argument toNioBotto automatically read messages from rooms. Defaults toTrue. Disabling this (False) will prevent read reciepts from automatically being sent.
Bug fixes¶
- Fixed
NioBot.get_dm_roomsraising a 401 Unauthorised error regardless of any state. - Fixed
NioBot.get_dm_roomsraising aGenericMatrixErrorwhenever there were no DM rooms, instead of gracefully returning an empty object. - Fixed
NioBot.get_dm_roomsusing outdated code from beforematrix-nio==0.24.0.
v1.1.0 (2024-01-30)¶
The license changed in this release.
With release v1.1.0 (specifically commit 421414d), the license for nio-bot was changed from GPLv3 to LGPLv3. In short, this means you do not have to open source your code, and you are able to commercialise your project if you use nio-bot.
This version's changelog includes changes made in its pre-release versions
This changelog includes all changes made since the last stable release, including those made in pre-release versions. If you scroll down, you will see duplicate feature changelogs where the feature was changed in a pre-release version.
New features¶
- Added
niobot.Context.invoking_prefix. - Python 3.12 is now supported.
- Added
niobot.NioBot.is_ready, which is anasyncio.Event. - Added command-level checks (
@niobot.check) - Added sparse DM room support.
- Added additional exception types, such as
GenericMatrixError. - Additional type-hinting for the entire library.
Changes¶
- License changed from
GPLv3toLGPLv3. - Improved existing type-hinting.
event_idis prioritised overroom_idinniobot.NioBot._get_id.niobotwas changed tonio-bot(for consistency) throughout documentation and the pip installation guide.
v1.1.0b1.post1 (and v1.1.0b1) (2023-10-16)¶
New features¶
- Added CI testing to the library.
- Rewrote argument parsers to use a class-based ABC system, rather than a function-based system. See documentation.
- Added the
ignore_selfflag toniobot.NioBot, allowing you to choose whether the client will ignore its own messages. - Added support for
typing.Annotatedin commands.
Deprecations & Removals¶
- The property
niobot.Module.logwas fully removed - it was never fully functional and often tripped up users as it was unsettable. - The property
niobot.Module.clientwas deprecated - you should useniobot.Module.clientinstead.
v1.1.0a3 (2023-10-06)¶
Changes¶
- Prioritise
event_idoverroom_idfor the_get_idfunction - Add
Context.invoking_prefix - Type hinting and code refactor
v1.1.0a2 (2023-08-21)¶
New features¶
- Backported support to Python 3.9 and Python 3.10.
Bug fixes¶
- Fixed a bug where disabled commands could crash the command parser.
Documentation changes¶
- Replaced
niobotwithnio-botfor pip install guide. - Fixed PyPi link in README.
- Cleaned up documentation issues.
- Removed the examples on GitHub (until the package is more stable in terms of design).
v1.1.0a1 (2023-07-31)¶
New features¶
- Added documentation for events.
- Added
niobot.attachments.whichfunction. - Added very early DM room support.
- Added easier ways to customise the help command.
- Added more specific exception types.
- Added
event_parserandroom_parser
Changes¶
force_awaitnow just awaits coroutines rather than casting them to a task- Command arguments now properly raise the correct errors
v1.0.2 (2023-07-16)¶
This is an urgent security release - denial of service vulnerability.
This release fixes a vulnerability where a potentially accidentally crafted message payload could cause the bot to completely crash. If you had disabled ignoring old messages, this could cause a crash loop if your bot automatically restarted.
If you cannot update to v1.0.2 from a previous release, you should implement the following workaround:
import niobot
class PatchedClient(niobot.NioBot):
async def process_message(self, *args):
try:
await super().process_message(*args)
except IndexError: # IndexError is the only error thrown during parsing
pass # or print, whatever
# bot = niobot.NioBot(...)
bot = PatchedClient(...) # use your patched version
New features¶
- Added
niobot.attachments.get_image_metadata(depends onimagemagick) niocli versionnow shows the OS and CPU architecture.niobot.attachment.*now always imports all attachment types into theniobotnamespace, regardless of installed external dependencies.
Bug fixes¶
- Fixed
niobot.ImageAttachmentbeing unable to detect image streams. - Fixed
niobot.BaseAttachmentsetting incorrect file properties niobot.ImageAttachmentno longer explicitly fails upon encountering an unknown format, it simply emits a warning, in line withniobot.VideoAttachment.- Fixed an unexpected input causing the entire process to crash.
v1.0.1 (2023-07-12)¶
- Added stub
setup.pyfor really old pip versions. - Updated the README.
v1.0.0 (2023-07-12)¶
The first stable release! This version has many breaking changes since v0.1.0, and as such is not very backwards compatible.
MediaAttachmentandThumbnailwere split up intoImageAttachment,VideoAttachment,AudioAttachment, andFileAttachment.- Attachments now automatically detect metadata.
- Thumbnailing was massively improved.
- Blurhashes are automatically generated for images.
- Attachments now fully support end-to-end encryption.
- Attachments will now emit warnings when a non web-safe codec is used.
- Automatic command parameter parsing, so you no longer have to manually specify
Command(arguments=[...]). - Automatic help command sanitisation.
- Added additional requirements.
- Added the ability to add and remove reactions.
- Added
__repr__to most objects in the library. - Added more helper/utility functions.
- Added documentation (tada!).
- Added more customisation options to
niobot.NioBot.
You've reached the end! There are no previously documented releases before the big 1.0.0. If you want to expand this list, you can contribute on GitHub! Open issues, or even better, make some pull requests. We love new contributors!