Skip to content

Releases: za419/CadenceBot

One-step-request filter application bugfix

25 Jan 03:45
v1.5.6
6780b4b
Compare
Choose a tag to compare

This release fixes a bug where the fields used in one-step-request
filters had gone out of sync with those sent by the backend, preventing
any filter besides the trivial-filter from working.

This also includes some minor enhancements to ease of writing custom
commands that use randomness.

Custom command aliasing

19 Jan 07:16
v1.5.5
188bd05
Compare
Choose a tag to compare

This patch release adds the appropriate mechanisms to alias custom
commands for ease-of-development. This allows one custom command to
simply be defined as a second name for another custom command within
it's own class (equalTo, startsWith, targeted, multitargeted).

Note that at this time an alias target cannot itself be an alias. If
this deficiency ever presents actual damage in real configurations
(perhaps this is likely when live reconfiguration comes into play), I
will add in alias-dereference loops to handle this situation.

Core command aliasing

12 Jan 00:38
v1.5.4
b69a9cb
Compare
Choose a tag to compare

Core commands (those documented by Cadence help) can now be given
aliases - Alternative prompt strings that will be translated to
canonical forms before command processing occurs.

Alias canonicalization will only occur after bans are checked (avoiding
wasted time checking messages from banned users).

Currently configured aliases (by default) are to support a common typo
("Cadence nowplaying"), and to support one alternate usage of play (to
perform requests) that was brought to my confusion during some confusion
regarding the helptext that should be written for play.

Play channel autoselect and more

03 Jan 01:36
v1.5.3
a809570
Compare
Choose a tag to compare

The major feature of this release is to enable play channel
autoselection - If a user who isn't already in a channel uses the play
command, the bot will automatically select either a channel it thinks is
meant for it, or the first available channel.

This release also:

  • Adds the ability to configure the bot to autostart with its server on
    boot during first-time-setup (via rc.local)
  • Adds the ability to specify parameters in short helptext (ie Cadence
    request )
  • Adds the ability for multitargeted customCommands to mention the
    author of the message via %a
  • Includes a massive dependency update (which required recreating all
    deployed CadenceBot instances from <=v1.5.2.2)

Add automated release creation

29 Nov 11:05
v1.5.2.2
e859dba
Compare
Choose a tag to compare

The new tag-release script will automatically apply Prettier, update
package.json, and create the appropriate commit and tag for this and
future CadenceBot releases.

Code Formatting Baseline

29 Nov 10:08
v1.5.2.1
d44e2b6
Compare
Choose a tag to compare

From this point onwards, CadenceBot will use Prettier to format bot.js. This patch release provides a well formatted baseline for future diffs.

Dynamic bans, bugfixes, and v2 requests

29 Nov 08:14
v1.5.2
b245f03
Compare
Choose a tag to compare
  • Bans can now be applied at runtime, by the admin sending messages in a Discord server. They can add or remove a user from the ban list - Bans are synced to disk.
  • Bans may be applied temporarily by specifying an object for a ban rather than an ID. This object may specifiy a start and end timestamp for the date (this is a human readable ISO formatted stamp, not a Unix timestamp). This is primarily done via the dynamic ban command, but it is possible to handwrite it.
  • Fix a number of quirks involving printout of long messages, perform some fixups to logging, and perform some security updates (especially node-fetch)
  • Consume the CadenceRadio v2 request API to perform non-rate-limited requests if the admin provides an API key.

Blacklist, custom command fixes, and server administration role

11 Mar 04:35
v1.5.1
dabd610
Compare
Choose a tag to compare
  • A list of users can be specified in config to be permanently ignored
    by CadenceBot. If desired, this can include CadenceBot itself, to
    prevent the bot from replying to itself (This is now done in
    production).
  • Randomized custom commands are now properly overrided (if both are
    arrays, the arrays are merged)
  • Custom commands and long-reply commands now pass output via the
    sendLong mechanism, which allows the sending of messages past
    Discord's character limit (With italicized spaces!)
  • A single user can be specified as the Administrator for a particular
    CadenceBot instance. Certain commands (currently maillog and config -
    see below) are only runnable by the Administrator
  • A new command allows the bot to echo the pretty printed JSON of the
    current configuration to the channel. This is admin-only.
    Additionally, the same pretty-print is logged (debug) on bot start.

Stream improvements, custom command improvements, and more

28 Jan 05:18
v1.5.0
f940689
Compare
Choose a tag to compare

The major feature of this release is improvements to the
CadenceBot-forwarded CadenceRadio stream.

This update introduces configurable options to the stream - An
administrator may now configure stream volume and the number of retries
made when a stream packet is dropped, in addition to the bitrate. Additionally, the stream is now a broadcast - Instead of getting a new connection to Cadence for each Discord server that wants to listen, CadenceBot now broadcasts a single stream to all listeners. This is much nicer for network consumption.

This update also introduces the "multitargeted" type of custom command.
These are allowed to include multiple words which can be formatted into
the response.

Minor improvements include adding 'maillog', which can trigger the
maillog script when the command is run in the server - this is disabled
by default and intended for debugging, improvements for the mechanics of
targeted custom commands, and timezoned logging.

Library listings, configurable API targets, and more

17 Mar 05:57
v1.4.2
9c1ebb2
Compare
Choose a tag to compare

This minor version update adds the library listing command, which
requests Cadence to provide a list of all available songs.

Additionally, API paths to Cadence are now set in the configuration
files, so that an instance may run off an alternative service (with
compatible API). This also means that updating to new API targets is
fairly easy, because it just requires a config update and a restart.

Smaller updates:

  • Manually calling now playing triggers an update of the bot's status across all servers
  • Support for custom-configured commands
    • Default custom commands are included to demonstrate how to set them
    • Additional commands can be added without removing access to these
  • CadenceBot logs are emailed as attachments on server restart, instead of as message bodies.
  • Support for ARIA 'special requests'
    • This feature is the result of the issue mentioned 100 commits (exactly!) ago, in v1.3.0
    • This feature is done using the API specified for the v3 Cadence server
    • This permits request timeouts to be specific to the requesting user or server, if the Cadence sysadmin (@kenellorando ) permits it
      • Otherwise, the current behavior (where the whole bot has one request timeout) is used.
    • This feature can be disabled in configuration.