Skip to content

Releases: Worldbuilding/kaztron

v2.1.1

03 May 18:17
24e36cc
Compare
Choose a tag to compare

Bugfixes

  • [modnotes] Fix duplicate aliases added by automatic nickname tracking. #151
  • [modnotes] Fix .notes alias add would allow duplicate aliases to be added.
  • [core] fix 'WARN' error in config.example.json

v2.1

30 Apr 10:25
9d2b678
Compare
Choose a tag to compare

New Features

For Everyone

  • Quotes Database. Now you can save and relive those hilarious moments forever! And unlike pins, there's no limit. #73
  • Writing Sprints allows users to hold writing sprint events, in which several users get together to work on a writing project for a fixed amount of time and compete on productivity. [For /r/Worldbuilding: #writing only] #3 #65 #88 #64 #66 #67 #63 #62 #68
  • Reminders allows you to ask the bot to remind you about something later. #41 #77
  • Voicelog - see who's entering and leaving voice chat. No more "wait, who just joined?" moments!
  • Dice .choose command. Can't make a decision? Let a robot choose for you!
  • KazTron is now iOS-friendly for quoted arguments. iOS defaulting to smart quotes is still stupid, though.

For Mods

  • [WORLDBUILDING ONLY] Managed role for "Moderator On Duty" using the .checkin and .checkout commands. (See Grine_ for how we're supposed to use this, I don't know his intention here!)
  • Userstats collects anonymised activity information on the server. #60
  • Role Manager now allows easy configuration of managed roles, similar to .spotlight join and .spotlight leave - either mod only or usable by any user. Ask a Bot Team member if you want a new role to be added to the bot. #25
  • [WELCOME] Users leaving the server are logged in #bot-output. #44
  • Some mod-channel-only commands, if used in the wrong channel, will automatically be deleted (e.g. if you try to add a note in a public channel). This mostly affects ModNotes and WordFilter.

Modtools and Modnotes

  • IMPORTANT! Modnotes are now shown in chronological order. The last page (most recent records) is shown by default.
  • Tempbans (mutes) are now automatically managed! Tempban modnotes will automatically be enforced and expired according to the expiry date (±1 hour). Use .tempban (tempban docs) to tempban a user and add a modnote in one command. #1
  • Modnotes will track a user's username and nickname changes as aliases whenever you access that user's notes (notes, add, etc.). #71
  • .notes add now allows you to attach/upload one file (screenshots, etc.). Make sure the file is included in the same message as the command. #43
  • .notes expires lets you modify the expiration date of an existing modnote. notes expires docs #89
  • .notes temps shows a list of currently active tempbans. notes temps docs
  • .whois now lets you search for any user currently on the server, by exact or partial name match, exact name+discriminator match, or exact Discord ID match.

Spotlight

  • Spotlight queue now tracks a full date range. Please read the docs for changes to the command syntax. #6
  • .spotlight queue showcase (showcase docs) gives a copy-pastable listing of the queue for a given month, for announcing upcoming spotlights publicly. Implementation per Yazuki's requirements. #40

Minor and Internal Enhancements

  • [BOOTSTRAP] Daemon mode
  • [BOOTSTRAP] Rewrite for greater usability (start/stop/restart commands)
  • [CONFIG] Enhancements to save functionality (write-delete-rename) to reduce likelihood of data loss or corruption of JSON state files. #78 #79
  • [CONFIG] Config files are written to disk prior to any expected or unexpected exit to prevent data loss.
  • [CORE] .info links are configurable in config.json, not purely hardcoded. Removed spotlight from hardcoded links. #58
  • [CORE] Error handling includes the possibility of deleting the message that invoked a command.
  • [KAZCOG] KazCog base class with various bot-wide convenience functionality. Related: #80
  • [LOGGING] Configurability of logging and rotating logs to reduce ridiculous log sizes. #50 #103
  • [MODNOTES] User and note ID are now mentioned in the confirmation message for .notes add.
  • [UTILS] Configurable date/time formats via config.json
  • [UTILS] Improvements to time formatting across the board #49
  • [UTILS] Refactor of utils.strings module for more logical package organisation
  • [UTILS] Add utils.dateparse.parse and utils.dateparse.parse_daterange, with default settings for KazTron
  • [UTILS] Pagination module added. Modnotes converted to it.
  • [UTILS] Add NaturalInteger converter, tolerant of thousands separators (comma and dot)
  • [UTILS] Add option to delete command-invoking message when the mod-channel check fails (unauthorised channel).

Bugfixes

  • [CORE] Do not report command-not-found for the emoticon ._. and similar strings #56
  • [MODTOOLS] Priority of distinguish role nondeterministic for users who have multiple distinguishable roles (.up and .down).
  • [MODNOTES] Fix unhelpful error message when adding a modnote with no note text.
  • [SPOTLIGHT] Fix error when .spotlight queue next called when queue is empty
  • [VOICELOG] Users' voice roles would not update on bot boot after downtime/disconnect. #55
  • [UTILS] Fix parse_keyword_args fails to identify the last value when no non-keyword content follows the keywords

v2.1 release candidate 2

30 Apr 09:31
f2962aa
Compare
Choose a tag to compare
Pre-release

Changelog

  • Fix incorrect formatting of some error messages
  • Sprint: Fix weekly report would fail with AttributeError

v2.1 release candidate 1

24 Apr 19:36
46670c0
Compare
Choose a tag to compare
Pre-release

Change log

Worldbuilding-specific

  • .checkin and .checkout now respond in-channel instead of PMing

Startup

  • Add additional logging in bootstrap to potentially catch an observed but unlogged crash/quit
  • Fix bugs in KazCog setup
  • Fix wrong HOME directory when using daemon mode
  • Add restart command to startup script (daemon mode only)

Core

  • Add NaturalInteger converter, tolerant of thousands separators
  • Add username/nickname search functionality to .whois
  • checks: Add option to delete an invoking message used in an unauthorised channel
  • Fix parse_keyword_args parse failure when no non-keyword content follows the keyword part
  • fix utils.datetime.parse error if string fails to parse
  • fix utils.datetime.parse_daterange error swapping dates if the endpoints are mis-ordered

Modnotes

  • Fix unhelpful error message when adding modnote or tempban with no note text

Quotedb

  • Enh: .quote grab will not grab the invoking command if the invoking user is grabbing themselves

Role man

  • Add configurable options for PMing response and deleting the original command message for join/part commands
  • Refactoring for code cleanliness

Spotlight

  • Fix error with .spotlight queue next if queue is empty

Sprint

  • Fix unload_kazcog was erroneously a coroutine
  • Add .sprint cancel as an alias of .sprint stop
  • Fix multiple weekly report messages in the case that the bot dis- and reconnects to Discord
  • Fix weekly reports cumulate over all time instead of restarting calculation weekly

API libraries

  • Fix argument parse error in gsheets driver when using the new launch script

v2.1 beta 2

05 Apr 23:28
Compare
Choose a tag to compare
v2.1 beta 2 Pre-release
Pre-release

Various deployment fixes.

  • Fixed a chown problem with atomic_write
  • Fixed filesystem actions (state.json write particularly) occurring before daemonisation in daemon mode
  • Fixed console logging never configured, TypeError (NoneType), when attempting to start in debug mode with daemon mode configured

v2.1 beta 1

05 Apr 08:50
Compare
Choose a tag to compare
v2.1 beta 1 Pre-release
Pre-release

Feature freeze for v2.1.

Changelog

Worldbuilding-specific

  • .checkin and .checkout to mark mods on/off duty (non-code, just a note for the community release notes)

New features

  • Module: quote database (quotedb) (#73)
  • Module: activity statistics (userstats) (#60)
  • Module: voice tools (voicelog) (#82)
  • Core feature: Daemon mode for running as an always-on service on POSIX
  • Enh: Restructured bootstrap/start script to be more usable
  • Fix: Monkey-patch to handle smart quotes in commands (because iOS is stupid and defaults to smart quotes) (#90)

Core/Framework

  • New: KazCog unload hook which is called on shutdown - can be used to e.g. ensure data is saved to state.json or disk before bot exits
  • New: KazCog-based cogs can use a custom JSON file instead of state.json (#80)
  • New: KazCog convenience functions for channel validation and output channel messages
  • New: Configurable rotating logs (#103)
  • Enh: KazCog writable configuration files (state.json and custom ones) are written to disk upon bot shutdown to prevent data loss (Cogs can use the hook described above if they need to write data to the configuration object first)
  • Enh: KazCog output channel and channel validation convenience functions/properties
  • Enh: on_error_rollback moved to database driver
  • Enh: utils.strings methods moved to more appropriate places
  • Enh: added safe atomic write to KazConfig (#78, #79)
  • Enh: Allow .info links to be customised in the config.json file, move spotlight link there (to allow non-worldbuilding bot instances not to have worldbuilding-specific links) (#58)
  • Enh: Add utils.dateparse.parse, convert direct uses of dateparser.parse to it (#70)
  • Fix: UNIX timestamps in persisted state.json were incorrect in reminder/spotlight/sprint (#69)
  • Fix: KazCog self.cog not available before on_ready event (esp. problematic for error handling pre-on_ready)
  • Fix: Do not report "I don't know that command" errors on more strings like the emoticon ._. (#56)

dice

  • New: .choose command to randomly choose from several choices

modnotes

  • Feature: expires command modifies the expiration date of a note (#89)
  • Feature: auto-record user nickname/username as aliases at user lookup time, when not already on file (#71)
  • Change: Notes listings are now chronological, with the default page being the last page
  • Enh: Clean up record formatting code and converted to use the Pagination module (#85)
  • Fix: add: mention user in 'note added' message (#61)

modtools

  • Fix: tempban hourly tick was not working properly due to error handling change in bbeb9c4
  • Fix: .up/.down priority of distinguish role not consistent for users who have multiple distinguishable roles

reminder

  • Enh: .remind 10 minutes: ... is now valid (#77)
  • Fix: clear would not cancel reminder tasks

role_man

  • Moved voice features to voicelog cog

spotlight

  • Feature: Queue now stores date ranges instead of just dates
  • Change: .spotlight queue add can no longer directly take an application ID (instead use .spotlight select)

sprints

  • New: Allow .w c during sprint and add a .w final to allow revising wordcount inputs (#65, #88)
  • New: Per-week statistics and weekly statistics reports (changes .w stats and .w leader commands) (#64)
  • New: .w statreset command to clear your own stats (or anyone's for moderators) (#66)
  • Enh: stats: show collection start date (#67)
  • Enh: Refactor of stats storage structures - old stats will need to be manually cleared or converted in state.json
  • Fix: stats: unit of "average time" was incorrect (#63)
  • Fix: better config validation at startup (#62)
  • Fix: mention winner in congratulations message (#68)

v2.1 alpha 1

08 Mar 07:25
c55d0f5
Compare
Choose a tag to compare
v2.1 alpha 1 Pre-release
Pre-release
  • Feature: Writing Sprints (#3)
  • Feature: Role Management Commands (#25)
  • Feature: Reminders (#41)
  • Feature: Tempban/mute automatic management (#1)
  • Enh: Modnotes add command now allows file and image attachments (#43)
  • Enh: Modtools: Expanded whois to search by name, name+discriminator, or ID
  • Enh: Spotlight: Added date tracking to queue (#6)
  • Enh: Finer control over logging to reduce ridiculous log sizes (#40)
  • Enh: Configurable date/time formats
  • Enh: Improvement of time formatting in all functions (#49)
  • Enh: Welcome module also detects users leaving server (#44)
  • Enh: Configurable log verbosity for dependencies (reduce ridiculous log sizes) (#50)
  • Fix: Errors or data loss during startup, between on_connect and on_ready (#52)
  • Fix: Voice role would not update on boot after downtime (#55)

v2.0.1 - Minor bugfixes

06 Mar 01:10
bf3f565
Compare
Choose a tag to compare

This release fixes a number of minor bugs and includes cosmetic enhancements from moderator team feedback.

  • Enhancement: spotlight embed appearance improved per feedback (#40)
  • Enhancement: Minor changes to .info and startup info, changed inline changelog to a link
  • Fix: Modnotes: reply with new note ID on add (#46)
  • Fix: .help notes add would give a size error instead of a help message
  • Fix: .wb without arguments could randomly select an out-of-range index (#45)

v2.0

26 Feb 05:57
245ee13
Compare
Choose a tag to compare
  • New: Internal rewrite for maintainability & reliability
  • New: Modnotes feature
  • New: Spotlight: queue management
  • New: Spotlight: automatic assignment of Host role
  • New: Refactor of command UI
  • New: Output message and usability improvements
  • New: Improved logging facilities
  • Fixed: Various bugfixes - see git history

v2.0 RC1

26 Feb 05:51
ac827fe
Compare
Choose a tag to compare
v2.0 RC1 Pre-release
Pre-release