Releases: Worldbuilding/kaztron
Releases · Worldbuilding/kaztron
v2.2 - Mew is here, too
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) updatesuper().__init__
call with the config/state file section name as second parameter. 2) make use ofself.cog_config
andself.cog_state
instead ofself.config
andself.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
andsend_output
methods with automatic message splitting capabilities for long messages, as well as support forEmbedSplitter
class instances for automatically splitting embeds. Note that these are called inside a cog viaself.send_message(...)
etc., as opposed toself.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
v2.2 beta 4 - Bugfixes - GRINE FOUND BUGS
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
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
andstop
are called when host is not assigned #231 - Fix error updating scheduler for upcoming reminder when queue modified #250
Projects
v2.2 beta 2 - Bugfixes & test release for rolemanager issue
Bugfix release. Small release for long-term testing of a rolemanager issue.
v2.2 beta 1 - test build 1
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
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 asNone
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
Changelog
- Merge v2.1.3
v2.2 alpha 2
Changelog
Core
- KazCog now includes
send_message
,say
andsend_output
with automatic message splitting capabilities for long messages, as well as support forEmbedSplitter
class instances for automatically splitting embeds. Note that these are called inside a cog viaself.send_message(...)
etc., as opposed toself.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
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) updatesuper().__init__
call with the config/state file section name as second parameter. 2) make use ofself.cog_config
andself.cog_state
instead ofself.config
andself.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
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)