Skip to content

Releases: alturiak/nio-smith

Release v0.0.9

18 Feb 18:36
Compare
Choose a tag to compare

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

28 Sep 20:21
Compare
Choose a tag to compare

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

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

Full Changelog: v0.0.7...v0.0.8

Release v0.0.7

21 Feb 21:45
Compare
Choose a tag to compare

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

07 Feb 22:25
Compare
Choose a tag to compare

💔 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() and Plugin.send_image().
  • Add Plugin.replace_notice() to edit notices, analogous to Plugin.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 optional room_id_list to check. If no room_id_list is given, servers on all rooms are returned.

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

24 Oct 23:35
Compare
Choose a tag to compare

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

  • Plugin API-Functions are named more consistently (bfc085f)
  • Add has_timer_for_method (04490c1)

Quotes

  • Fix several issues when starting with an empty quote-db (b74b0b7, 24c2f80)
  • Fix adding quotes in irc-style (aacbd0b)

Dates

  • Fix reminders for legacy dates (9c0007e)
  • Post a reminder at the actual time of the event (da0ebfc)

Release v0.0.4

13 Jul 19:08
Compare
Choose a tag to compare
Release v0.0.4 Pre-release
Pre-release

Update requirements to matrix-nio >= 0.18.3 to ensure compatibility with synapse >= 0.38.0.

Release v0.0.3

31 Dec 14:42
Compare
Choose a tag to compare
Release v0.0.3 Pre-release
Pre-release

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

26 Dec 18:47
Compare
Choose a tag to compare
Release v0.0.2 Pre-release
Pre-release

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 Dicts that use int as key since
    they will be loaded as str 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

26 Dec 15:40
Compare
Choose a tag to compare
Release v0.0.1 Pre-release
Pre-release

This release has been replaced. Please see v0.0.2 for details.