Skip to content

Releases: Worldbuilding/kaztron

v2.2 - Mew is here, too

03 Sep 08:08
Compare
Choose a tag to compare

Change log

New features / highlights

  • [new] Module: Project Management - Allows sharing project info with other members. Primarily geared towards writing projects. Beta release. (Bugs: #228 #226 #215)
  • [new] Help formatter/generator: All help docs (in-bot via .help, online, and in-code comments) have been unified. .jekyllate command added to generate online cog documentation files.
  • [new] User reports to mods: Add .report for confidential user reports to the mod team #178

General bot changes

  • [enh] Add list of loaded modules to .info output
  • [enh] Disable context sensitivity of help command lists (#98)
  • [enh] When sub-commands are listed in error messages, improved appearance of aliases (#138)
  • [fix] Long messages and embeds are now automatically split into multiple messages, in most functions in the bot where such long messages are possible (partially #124)

Dice

  • [enh] Removed channel constraints on commands #262

Inkblood-specific

New features

  • [new] BLOTS checkin management
  • [new] BLOTS badges detection and database

Changes (since pre-alpha)

  • [new] Add .checkin delta report #194
  • [new] Add .milestone update report (#157)
  • [new] .checkin report: for a given checkin week, checked-in-users are explicitly ordered by name, and non-checked-in users are listed by the date of their last known checkin. #185
  • [new] checkins are now only allowed during a specific time frame (via config, with a list of roles that are excepted from this via config). Time frame start/end is announced in the checkin channel. #133
  • [enh] Refactor reporting and use embeds to avoid spurious highlights
  • [enh] Exempt list automatically cleans up users no longer on the server when any .checkin exempt call is made #209
  • [docs] Documented badge submit format #217 #218
  • [fix] Fixed add-badge error when using commands in the badge channel #219

ModNotes & ModTools

  • [new] Add .report for confidential user reports to the mod team #178
  • [enh] Integrate .whois and .notes finduser. .whois is now preferred; .notes finduser is deprecated. #131 (bugs: #244, #245, #246, #247)
  • [enh] Support #dddd notation for note IDs #186
  • [fix] tempbans not applied on user join (#237)

Quotes

  • [new] Add quote statistics #180
  • [new] Default .quote command now searches for quotes; the old quote retrieval by index # has been renamed .quote get #243
  • [enh] Allow .quote w/o arguments to select a random quote #195
  • [enh] Quote searches using .quote return a random result (not latest result) #150
  • [fix] Show quote number for find/grab #196
  • [fix] Fix .quote rem is mod only #200
  • [fix] Fix non-specific error when an unknown user ID is passed directly #201
  • [fix] Improve user-friendliness of error message when attempting to grab/add a quote that's too long #263
  • [int] Refactoring/cleanup - use ORM instead of redundant query methods
  • [int] Refactoring - use EmbedSplitter, convert to new-style configs

Spotlight

  • [new] Add duration management and reminders (#104, #166; bugs: #199, #231, #250)
  • [new] Add mod reminders for upcoming queued spotlights (#167)
  • [new] Changes to support Inkblood Crit-Pit
  • [fix] Fix spotlight showcase truncation and possible Discord errors #4 #5 (related to #124)
  • [fix] Empty fields in .spotlight queue showcase output when an index is out of bounds #223

Sprints

  • [fix] Reliability improvements: handle cancellation of the results/finalisation task, if interrupted. This may fix a race condition in which the .w final call occurs near or soon after the end of the finalise period. (Possibly related to #86)
  • [fix] .w final does not return meaningful sprint state errors #159
  • [fix] argument validation of delay, start, wc arguments #229 #258 #260
  • [fix] .w statreset was broken for a user who has no overall or weekly stats #261
  • [fix] Founder of sprint not correctly displayed when sprint is cancelled #257

Reminders

  • [fix] Notify user if their PMs are disabled, at reminder time. #35
  • [int] Internal clean-up - update to use new-style config, clean up tasks.

RoleManager

  • [enh] RoleManager (formerly role_man) is now a core component. It is loaded by default and need no longer be specified in the extensions list in config.json. #130
  • [fix] Role commands with a specified dummy group is not created in the dummy group #239
  • [fix] Cog-specified rolemanager commands break in some conditions after a bot reconnect #227 [tentative fix - not re-observed in long-term testing but hard to reproduce]
  • [fix] join/leave commands not working in PM #240

VoiceLog

  • [new] Allow different text output channels for different voice channels

Welcome

  • [new] Add optional quit notifications in public channel

Userstats

  • [fix] Various speed optimisations. Report generation is now ~90% faster.
  • [fix] .report renamed to .userstats report due to modtools conflict

Framework / for developers

New features

  • [core] New configuration API. Configuration now has a nicer object access API. The old KaztronConfig.get/KaztronConfig.set API is now deprecated (but remains available for backwards compatibility). To use new API in cogs: 1) update super().__init__ call with the config/state file section name as second parameter. 2) make use of self.cog_config and self.cog_state instead of self.config and self.state, respectively. Each is a SectionView instance with both attribute access and get/set-method accessors. (#48, #182)
  • [core] New help format - Structured help formatter (kazhelp) (#173), Jekyll help documentation generator (.jekyllate) (#174), updated all cogs
  • [core] New scheduler for executing tasks in the future. Add a scheduler for scheduling asyncio tasks at a specific time, with a discord.py command-like API. Convert spotlight, userstats, sprint, reminder, modtool to use this scheduler. (#171)
  • [core] KazCog send_message, say and send_output methods with automatic message splitting capabilities for long messages, as well as support for EmbedSplitter class instances for automatically splitting embeds. Note that these are called inside a cog via self.send_message(...) etc., as opposed to self.bot.send_message(...) etc. #114
  • [core] Add: In commands, error messages can be directly sent as a reply message by raising UserInputError
  • [utils] Add embed splitter - splits embeds and fields that are longer than Discord limits into multiple embeds/messages

Enhancements

  • [core] RoleManager (formerly role_man) is now a core component. It is loaded by default and need no longer be specified in the extensions list in config.json. #130
  • [core] Commands that PM users will now send an appropriate error message in-channel if PMs are disabled. (Non-command PMs, e.g. reminders, must handle this situation themselves.) #35
  • [core] state.json auto-saves, if needed, after each command is run (#84)
  • [core] Make KazCog._config available statically
  • [core] Improvements to core error handling (ae6169f)
  • [core] Improvement to user-friendliness of BadArgument "convert to int/float" errors #259
  • [utils] Improve subcommand help's command list display (#138) and convert all dummy command groups to use this utility (#113)
  • [utils] Fix error message format for NaturalInteger
  • [utils] Allow trailing dot/comma in NaturalInteger
  • [utils] Add global logging of commands (#47)
  • [utils] Add asyncio loop time calculations
  • [config] Reduce log verbosity (related to #84)
  • [docs] Add release, version and category information to the jekyll pages' front matter #236
  • [docs] Generated documentation front matter update for possible reskinning of site #252
  • [docs] Harmonised terminology: "parameter" for user-facing strings/docs (as opposed to "argument")

Bug fixes

  • [core] @everyone/@here/role mentions can be injected via commands that echo user input. Core fix. #254
  • [docs] Miscellaneous documentation fixes #214 #210

v2.2 beta 4 - Bugfixes - GRINE FOUND BUGS

13 Aug 03:59
Compare
Choose a tag to compare

Changelog

  • [core] clean up + upgrade all dependencies
  • [core] fix at-everyone/at-here vulnerability #254
  • [core] reorganise discord.py patches into own file
  • [core] update .jekyllate front matter per Kavaeric #252
  • [core] fix error message to be more user friendly for "convert to int/float" errors #259
  • [dice] remove channel constraints on all commands #262
  • [quotes] fix error message to be more user friendly for .quote grab/add of an excessively long quote #263
  • [sprint] fix .w statreset for a user who has no overall or weekly stats #261
  • [sprint] fix argument validation of delay and start/wc wordcounts #258, #260
  • [sprint] fix founder not correctly displayed at sprint cancel time #257

Documentation

  • Replace 'argument' with 'parameter' for user-facing strings/docs

v2.2 beta 3 - Bugfixes - WB test build

05 Aug 01:10
1413064
Compare
Choose a tag to compare
Pre-release

Changelog

Core

  • Fixed RoleManager join/leave commands not working in PM. #240
  • Fix various documentation errors throughout #214 #210
  • Scheduler - add async wait methods for task completion/cancellation
  • Add release, version and category information to the jekyll docs front matter #236

BLOTS

  • [docs] badge submit format #217
  • [docs] fix .badge examples #218
  • Fix add-badge error when using commands in the badge channel #219

ModTools

  • Fix whois failure when the user is no longer on the server #221
  • Fix usability issues on mobile in embeds #244
  • Fix embed splitting in whois can break mention #245
  • Fix some discord-based results in whois results do not show notes ID #246
  • Fix inaccurate total results #247

Quotes

  • Fix errors when a user has no quotes #213
  • Default .quote command now defaults to .quote find behaviour; .quote get must now be used to access quotes by index #243

Sprints

  • Fix negative absolute wordcount accepted for .sprint count command #229

Spotlight

  • Fix empty fields in .spotlight queue showcase when an index is out of bounds #223
  • Fix errors when .spotlight start and stop are called when host is not assigned #231
  • Fix error updating scheduler for upcoming reminder when queue modified #250

Projects

  • [docs] Fix command typo for .projects rem examples #228
  • Fix error, in some cases, when a genre or type role is not assigned #226
  • Rename .project wizard to .project edit #215

v2.2 beta 2 - Bugfixes & test release for rolemanager issue

26 Jul 19:13
09f6df7
Compare
Choose a tag to compare

Bugfix release. Small release for long-term testing of a rolemanager issue.

  • [modtools] Fix tempbans not applied on user join (#237)
  • [rolemanager] Fix role commands not created in dummy groups (#239)
  • [rolemanager] Remove all rolemanager commands on RoleManager cog unload. Attempted fix for long-term testing of #227.

v2.2 beta 1 - test build 1

21 Sep 17:35
3b79e06
Compare
Choose a tag to compare
Pre-release

Changelog

Core

  • Fix KazCog.send_message() argument defaults
  • Early error message when field argument empty in EmbedSplitter
  • Update all cogs to use EmbedSplitter for paginated record outputs #124
  • Updated most cogs to use new-style configs #182

Inkblood BLOTS

  • Add checkin delta report #194
  • Refactor reporting and use embeds to avoid spurious highlights
  • Exempt list auto-cleanup of users no longer on the server when any .checkin exempt call is made #209

ModTools

  • Integrate .whois and .notes finduser #131

Quotes

  • Add quote statistics #180
  • Allow .quote w/o arguments to select a random quote #195
  • Show quote number for find/grab #196
  • Return a random result (not latest result) for .quote find #150
  • Fix .quote rem is mod only #200
  • Fix non-specific error when an unknown user ID is passed directly #201
  • Refactoring/cleanup - use ORM instead of redundant query methods
  • Refactoring - use EmbedSplitter, convert to new-style configs

Spotlight

  • Fix end of spotlight (.spotlight end or timer end) should remove host role #199
  • Fix spotlight showcase truncation and possible Discord errors #4 #5 (related to #124)

Voicelog

  • Allow different text output channels for different voice channels
  • Refactor to use new-style configs

v2.1.3

25 Aug 17:23
46b95f3
Compare
Choose a tag to compare

Enhancements

  • [modnotes] Always show KazTron DB ID for users alongside username/mention #175

Bugfixes

  • [modnotes] Fix incorrect usage string in error handler for some modnotes functions #177
  • [quotes] Fix generic error when .quote find returned no results - now shows a helpful error message #189
  • [quotes] Fix .quote grab would show user as None in error message when no matching message found and user does not have a nickname #181
  • [voicelog] Fix "changed from channel #x to #x" messages on non-channel change updates (e.g. mute/deafen) #168
  • [userstats] Fix generic error when .userstats and .report date parsing fails #192
  • [userstats] Fix generic error instead of "report span across different months" error message #191
  • [utils] Cleaned up MemberConverter2: makes use of get_member
  • [utils] Fixed MemberConverter2/get_member should raise commands.BadArgument, not discord.InvalidArgument

v2.2 alpha 3 - v2.1.3 merge

25 Aug 18:11
e786010
Compare
Choose a tag to compare
Pre-release

Changelog

v2.2 alpha 2

25 Aug 17:35
75e4086
Compare
Choose a tag to compare
v2.2 alpha 2 Pre-release
Pre-release

Changelog

Core

  • KazCog now includes send_message, say and send_output with automatic message splitting capabilities for long messages, as well as support for EmbedSplitter class instances for automatically splitting embeds. Note that these are called inside a cog via self.send_message(...) etc., as opposed to self.bot.send_message(...) etc. #114
  • RoleManager (formerly role_man) is now a core component. It is loaded by default and need no longer be specified in the extensions list in config.json. #130
  • Commands that PM users will now send an appropriate error message in-channel if PMs are disabled. (Non-command PMs, e.g. reminders, must handle this situation themselves.) #35
  • Scheduler error/cancel handlers now take a required TaskInstance argument.

Inkblood BLOTS

  • .checkin report: for a given checkin week, checked-in-users are explicitly ordered by name, and non-checked-in users are listed by the date of their last known checkin. #185
  • checkins are now only allowed during a specific time frame (via config, with a list of roles that are excepted from this via config). Time frame start/end is announced in the checkin channel. #133`

Modnotes

  • Support #dddd notation for note IDs #186

Modtools

  • Add .report for confidential user reports to the mod team #178

Projects

  • Command groups within .projects admin will now output sub-command help even if parameters are specified (previously gave a too-many-arguments error).
  • .projects admin genre and .projects admin type are now purely command groups. To list all genres or types, use the subcommand .projects admin genre list or .projects admin type list.

Sprints

  • Reliability improvements: handle cancellation of the results/finalisation task, if interrupted. This may fix a race condition in which the .w final call occurs near or soon after the end of the finalise period. (Possibly related to #86)
  • .w final does not return meaningful sprint state errors #159

Reminders

  • Internal clean-up - update to use new-style config, clean up tasks.
  • Notify user if their PMs are disabled, at reminder time. #35

Userstats

  • Various speed optimisations. Report generation is now ~90% faster.
  • .report renamed to .userstats report due to modtools conflict

v2.2 alpha 1 - for IB internal testing

08 Aug 23:02
Compare
Choose a tag to compare
Pre-release

Change log

Bugfixes

  • [quotes] Fix startup errors due to v2.2 KazCog.server changes
  • [all] Cleanup of v2.2 cogs (#155)

New features

  • Project Management - Allows sharing project info with other members. Primarily geared towards writing projects.
  • [help] Add structured help formatter (kazhelp) (#173), Jekyll help documentation generator (.jekyllate) (#174), update all cogs
  • [welcome] Add optional quit notifications in public channel
  • [utilities] asyncio loop time calculations
  • [core] Add a scheduler for scheduling asyncio tasks at a specific time, with a discord.py command-like API. Convert spotlight, userstats, sprint, reminder, modtool to use this scheduler. (#171)
  • [core] Configuration now has a nicer object access API. The old KaztronConfig.get/KaztronConfig.set API is now deprecated. To use in cogs: 1) update super().__init__ call with the config/state file section name as second parameter. 2) make use of self.cog_config and self.cog_state instead of self.config and self.state, respectively. (#48)

New features: Inkblood-specific

  • New feature: BLOTS/checkin
  • Added since pre-alpha deployment: .milestone update (#157)
  • New feature: BLOTS/badges

Enhancements

  • [spotlight] Changes to support Inkblood Crit-Pit
  • [spotlight] Add duration management and reminders (#104, #166)
  • [spotlight] Add mod reminders for upcoming queued spotlights (#167)
  • [core] Improved KazCog.on_ready so it that parent call could be done at the beginning of on_ready in cogs (#155)
  • [core] state.json auto-saves, if needed, after each command is run (#84)
  • [core] Add list of loaded modules to .info output
  • [core] Make KazCog._config available statically
  • [help] When sub-commands are listed in error messages, improved appearance of aliases (#138)
  • [help] Disable context sensitivity of help command lists (#98)

Utilities

  • Add embed splitter - splits embeds and fields that are longer than Discord limits into multiple embeds/messages
  • Add UserInputError, whose message is directly sent as a reply message by the error handler
  • Improve subcommand help's command list display (#138) and convert all dummy command groups to use this utility (#113)
  • [config] Reduce log verbosity (related to #84)
  • Fix error message format for NaturalInteger
  • Allow trailing dot/comma in NaturalInteger
  • Add global logging of commands (#47)
  • Improvements to core error handling (ae6169f)

v2.1.2

08 May 06:34
245399f
Compare
Choose a tag to compare

Changelog

  • [quotes] Added datetime format options in config file
  • [quotes] Added channel display options in config file (#154)
  • [quotes] Fixed grab was case-sensitive
  • [welcome] Added username/nickname to join/part logs in the output channel (#146)
  • [utils] Fixed extract_user_id does not work with escaped mentions (#147)