- A plethora of PEP8 and general syntax changes have been made to cleanup the code
- Fixed the invocation of holster Emitters to match the latest versions constructor signature
- Fixed a bug with
Emoji.custom - Fixed a bug in the typing system that would not allow Field's to have a
defaultofNone
- Added support for streaming zlib compression to our gateway socket. This is enabled by default and provides significant performance improvements on startup and overall bandwidth usage
- Added support for
Guild.system_channel_idandGUILD_MEMBER_JOINsystem message - Added
Guild.create_category,Guild.create_text_channelandGuild.create_voice_channel - Added
Channel.create_text_channelandChannel.create_voice_channelwhich can be called only on category channels to add sub-channels
- Fixed the
__str__method for Channel's displaying (useless) unset data for DMs - Fixed a bug with
MessageIteratorrelated to iterating before or after an ID of 0 - Fixed incorrect field name (
icon_proxy_urlvsproxy_icon_url) in MessageEmbedAuthor model - Fixed bugs related to creating and deleting pinned messages
- Fixed
GuildBan.reasonincorrectly handling unicode reasons - Fixed
Paginatorthrowing an exception when reaching the end of pagination, instead of just ending its iteration - Fixed
Paginatordefaulting to start at 0 for all iterations
- BREAKING Refactor the way Role's are managed and updated. You should update your code to use
Role.update - BREAKING Renamed
Model.updatetoModel.inplace_update. You should not have to worry about this change unless you explicitly call that method - DEPRECATION Deprecated the use of
Guild.create_channel. You should use the explicit channel type creation methods added in this release - Expanded
APIClient.guilds_roles_createto handle more attributes
- Added support for Guild audit logs, exposed via
Guild.get_audit_log_entries,Guild.audit_logandGuild.audit_log_iter. For more information see theAuditLogEntrymodel - Added built-in Flask HTTP server which can be enabled via
http_enabledand configured viahttp_host/http_portconfig options. The server allows plugins to define routes which can be called externally. - Added support for capturing the raw responses returned from API requests via the
APIClient.capturecontextmanager - Added support for NSFW channels via
Channel.nsfwandChannel.is_nsfw - Added initial support for channel categories via
Channel.parent_idandChannel.parent - Added various setters for updating Channel properties, e.g.
Channel.set_topic - Added support for audit log reasons, accessible through passing
reasonto various methods - Added
disco.util.snowflake.from_timestamp_ms - Added support for
on_completecallback within DCADOpusEncoderPlayable - BREAKING Added new custom queue types
BaseQueue/PlayableQueuefor use w/Player.queuecan be passed when creating aPlayer, should inherit from BaseQueue- Users who previously utilized the
putmethod of the oldPlayer.queuemust move to usingPlayer.queue.append, or providing a custom queue implementation.
- Added
Emoji.customproperty
- Fixed GuildRoleCreate missing guild_id, resulting in incorrect state
- Fixed SimpleLimiter behaving incorrectly (causing GW socket to be ratelimited in some cases)
- Fixed the shortest possible match for a single command being an empty string
- Fixed group matching being overly greedy, which allowed for extra characters to be allowed at the end of a group match
- Fixed errors thrown when not enabling manhole via cli
- Fixed various warnings emitted due to useage of StopIteration
- Fixed warnings about missing voice libs when importing
disco.types.channel - Fixed
Bot.get_commands_for_messagereturning None (instead of empty list) in some cases
- Greatly imrpoved the performance of
HashMap - BREAKING Increased the weight of group matches over command argument matches, and limited the number of commands executed per message to one.
- Reuse a buffer in voice code to slightly improve performance
- Added support for capturing the raw responses returned from the API via
APIClient.capturecontextmanager - Added various pieces of documentation
- Fixed Python 3 errors and Python 2 deprecation warnings for CommandError using
.messageattribute
- Grealty improved the performance of the custom HashMap
- Moved tests around and added pytest as the testing framework of choice
- Added support for new NSFW attribute of channels
Channel.nsfwChannel.set_nsfwChannel.is_nsfwbehaves correctly, checking both the deprecatednsfw-prefix and the new attribute
- Added support for
on_completecallback within DCADOpusEncoderPlayable - BREAKING Added new custom queue types
BaseQueue/PlayableQueuefor use w/Player.queuecan be passed when creating aPlayer, should inherit from BaseQueue- Users who previously utilized the
putmethod of the oldPlayer.queuemust move to usingPlayer.queue.append, or providing a custom queue implementation.
- Fixed bug within SimpleLimiter which would cause all events after a quiescent period to be immedietly dispatched. This would cause gateway disconnects w/ RATE_LIMITED on clients with many Guilds and member sync enabled.
- Improved log messages within GatewayClient
- Log voice endpoint within VoiceClient