Releases: alturiak/nio-smith
Release v0.0.9
This release includes security fixes in dependencies and updates matrix-nio to 0.24.0, which is now the minimum required version. Yet, it still includes quite a few commits made in the meantime.
✨ Features
- No new features
🐛 Bug Fixes
- Require python-levenshtein 0.21.0 to fix fuzzy command matching (92ab555)
🧩 Plugins
federation_status
- fix loading error when server_ignore_list is not defined (2ba7540)
- add options check_frequency and report_connectivity_changes (b2e8e87)
quotes
- several bug fixes (see full changelog)
sonarr
- fix exception for series without airTime (c8e3cc1)
- change to sonarr's V3-API (1fa5d26)
- Add symbols to weekly post to make status distinguishable on mobile clients (85e72cb)
- use id as main criteria for series identification. Allows for changes in series titles without being recognized as a new series (64abc3f)
- ignore lastAired in changetracking (a28138b)
⚙Internal
- Switch to commonmark-formatting for markdown-messages (74433d1)
- change sleep timer to 60s (b73e763)
- Update all dependencies (3104683)
Full Changelog: v0.0.8...v0.0.9
Release v0.0.8
This release is mainly triggered by the security release 0.20.0 of matrix-nio, which is now the minimum required version. Yet, it still includes quite a few commits made in the meantime.
✨ Features
- Improve rate-limiting by honoring server's M_LIMIT_EXCEEDED (87d1be9)
- Add a plugin.get_client()-Method to retrieve the bot's client instance (14b68cb)
🐛 Bug Fixes
- make read_config() return a copy of the configuration instead of a reference (d4aaee3)
- Fix loading non-default plugin config-values set to False (bfc89f2)
🧩 Plugins
New plugin: coingecko
fetch market data for crypto currencies (Contributed and maintained by Eulentier161)
cashup
- added comment functionality for adding expenses (de70c2d) - contributed by JimmyPesto
- safer user input validation (c781b9e) - contributed by JimmyPesto
federation_status
- Add an optional server_ignore_list (8a70f1d)
- federation_status: Catch exception when remote homeservers refuse our connection (64f484b)
manage_bot
- add bot_leave_room command (6fd2a47)
quote
- add a command to remove all annotations from a specific quote (92f63a8)
sonar
- suppress posting changes to totalEpisodeCount (1c238c9)
translate
- fix bidirectional translations (7b612da)
xkcd_comic
- Add notification_only option (19105a3)
⚙Internal
- deprecation asyncio.get_event_loop (42ec7a0) - contributed by Eulentier161
- created pyproject.toml (93886c5) - contributed by Eulentier161
- utilize uvloop if available (823dc75) - contributed by Eulentier161
- Change order of imports to make use of existing logger for all warnings (98b5cbd)
- Additionaly format messages according to MSC1767 (6e20544)
- Require matrix-nio >= 0.20.0 (0a7f254)
Full Changelog: v0.0.7...v0.0.8
Release v0.0.7
Very small bugfix release to make commands with room_list=[] (that should be available on all rooms) work again.
✨ Features
- Simple rate-limiting: after sending more than 8 events within 2 seconds, the bot will throttle any additional events to 1 every 2 seconds until the queue is cleared. This is to avoid being ratelimited by the homeserver which will simply drop any events exceeding the ratelimit. (9a5e507).
🐛 Bug Fixes
- Fix triggering commands with room_list=[] (648ff49)
🧩 Plugins
dates
- fix exception when no dates are stored (1d6c47c)
translate
- Require allowed_rooms and min_power_level, fix running with allowed_rooms=None (5297a35)
Full Changelog: v0.0.6...v0.0.7
Release v0.0.6
💔 Breaking Changes
Expandable messages
The optional arguments for
Plugin.send_message()
Plugin.respond_message()
have changed.
expanded_mesage
has been added as a new optional argument, moving optional argument delay
by one
position. It is recommended to always use optional arguments explicitly, e.g. plugin.respond_message(command, "short text", expanded_message="long text", delay=200)
(1195cbb)
Nick linking
Plugin.link_user()
now returns the unmodified display_name
it has been originally given instead of None
if the
user is not on the room. This ensures that it always returns a valid nickname and removes the need for special
handling within the plugin. (5a2af26)
Renamed parameter of hooks
Optional parameter room_id
of Plugin.add_hook()
, Plugin.del_hook()
and Plugin.has_hook()
has been renamed to room_id_list
to better reflect its usage.
🗑️ Deprecations
- none
✨ Features
- Expandable messages (1195cbb). Methods to send messages have a new optional parameter
expanded_message
, which is visible on clients after expanding the message manually. This is using <details>: The Details disclosure element and is currently known to work only on Element Web. - Plugins can request creation of a data backup (e24f488).
This will create a<pluginname>.json.bak.<timestamp> on request (
Plugin.backup_data()`) (e24f488) - Retrieving and sending images
- Add functions
Plugin.fetch_image_from_url()
andPlugin.send_image()
.
- Add functions
- Add
Plugin.replace_notice()
to edit notices, analogous toPlugin.replace_message()
. - Get information about known homeservers. (cc10084)
- Add function
Plugin.get_rooms_for_server()
to find rooms the bot has in common with users of the given homeserver. - Add function
Plugin.get_connected_servers()
to find homeservers known to the bot, with an optionalroom_id_list
to check. If noroom_id_list
is given, servers on all rooms are returned.
- Add function
See plugins/sample for examples.
🐛 Bug Fixes
- Fixed a crash when mandatory plugin configurations are missing (0e7b736)
- Fixed starting up with broken plugins. Broken imports will log an error but will not prevent the bot from starting. (0655e72)
- Fixed adding and deleting dynamic hooks. (726fe61)
- Log a warning when sending a room message fails (d93783d)
- various small fixes
🧩 Plugins
New plugin: cashup
For a set of people who owe each other some money this plugin can settle expenses among this group.
Contributed and maintained by JimmyPesto.
New plugin: federation_status
Checks federation-status of all connected homeservers and posts alerts if they become unreachable or get back online.
It will also post warnings to rooms if a homeserver's certificate is about to expire.
New plugin: xkcd_comic
Post an xkcd-comic as image or url. Use the most recent by default, or a specific one if an ID is given.
New plugin: wiki
Lookup keywords in various online encyclopedias.
New plugin: wissen
Post a random or specific entry of the database of useless knowledge. (german, sorry)
dates
- Post a reminder at the actual time of the event (not just at the beginning of the day) (caff192)
- Fix overwriting confetti-timer
quote
- Make use of expandable messages
- New command
quote_links_fuzzy
: toggle fuzzy matching in nick linking on or off - Create data backup before replacing a quote
- Add
quote_replace_nick
to replace a nickname in ALL QUOTES!
sonarr
- Post a daily digest of changes to tracked series
translate
- Use freetranslate instead of googletrans to make the plugin more stable
Full Changelog: v0.0.5...v0.0.6
Release v0.0.5
This release should vastly improve the out-of-box experience, making setting up your first bot a lot more convenient.
🗑️ Deprecations
- Several plugin-functions have been deprecated and will issue a warning from now on. They will be removed in v0.1.0. See bfc085f and plugins/README.md for details.
✨ Features
- Add an optional plugin-blocklist to the config (#44). This adds an optional allow_list and block_list to the configuration, allowing you to prevent certain plugins from being loaded altogether without modifying plugin-files.
- Capability to define config file and plugin dir (#43)
- Add missing documentation to all plugins (d82e700)
- Add an optional doc_url config item for plugins (0838e24)
- only list commands that are valid to the current room in
help <plugin>
(6b181ba)
🐛 Bug Fixes
- Fix crashing when plugins are missing mandatory configurations (643b2ac)
- Fix loading dynamic hooks from plugin-state (1ffca13)
- Fix crash when user with insufficient power level tries to issue a command (6497d76)
🧩 Plugins
General
Quotes
- Fix several issues when starting with an empty quote-db (b74b0b7, 24c2f80)
- Fix adding quotes in irc-style (aacbd0b)
Dates
Release v0.0.4
Update requirements to matrix-nio >= 0.18.3 to ensure compatibility with synapse >= 0.38.0.
Release v0.0.3
With release v0.0.3, all included plugins are being
moved to directories. Stored data will automatically be moved over if the bot has been run with
v0.0.2 at least once.
If you notice missing data after upgrading, make sure to check out
v0.0.2 and run it once, before updating to
v0.0.3 again.
See Milestone v0.0.3 for other noteworthy changes.
Release v0.0.2
This introduces automatic backend-migration from pickle-files to json-files.
It fixes loading json-data from single-file plugins in v0.0.1
- Please make sure you have
jsonpickle
installed (update requirements, e.g.pip install -r requirements.txt
). - One limitation of the new storage format is that you will not be able to store
Dict
s that useint
as key since
they will be loaded asstr
from now on. The old.pkl
-file will be preserved. Please make sure, your plugins work
with the new storage-backend before deleting it. - Run the bot at least once with this release before updating to future releases (see BREAKING.md).
Release v0.0.1
This release has been replaced. Please see v0.0.2 for details.