Disco-py

Latest version: v0.0.12

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

0.0.12

Additions

- **MAJOR** Added voice gateway v3 support. This will result in increased stability for voice connections
- **BREAKING** Updated holster to v2.0.0 which changes the way emitters work (and removes the previous priorities). A migration guide will be provided post-RC cycle.
- Added support for ETF on Python 3.x via `earl-etf` (GiovanniMCMXCIX)
- Supported detecting dead/inactive/zombied Gateway websocket connections via tracking `HEARTBEAT_ACK` (PixeLInc)
- Added support for animated emoji (Seklfreak)
- Added support for `LISTENING` and `WATCHING` game statuses (PixeLInc)
- Added `wsaccel` package within the `performance` pack, should improve websocket performance
- Added the concept of a `shared_config` which propgates its options to all plugin configs (enkoder)
- 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_id` and `GUILD_MEMBER_JOIN` system message
- Added `Guild.create_category`, `Guild.create_text_channel` and `Guild.create_voice_channel`
- Added `Channel.create_text_channel` and `Channel.create_voice_channel` which can be called only on category channels to add sub-channels

Fixes

- Fixed 'Invalid token passed' errors from showing up (via removal of token validation)
- Fixed `IndexError` being raised when `MessageIterator` was done iterating (Majora320)
- Fixed overwrite calculations in `Channel.get_permissions` (cookkkie)
- A plethora of PEP8 and general syntax changes have been made to cleanup the code
- Fixed a bug with `Emoji.custom`
- Fixed a bug in the typing system that would not allow Field's to have a `default` of `None`
- Fixed the `__str__` method for Channel's displaying (useless) unset data for DMs
- Fixed a bug with `MessageIterator` related to iterating before or after an ID of 0
- Fixed incorrect field name (`icon_proxy_url` vs `proxy_icon_url`) in MessageEmbedAuthor model
- Fixed bugs related to creating and deleting pinned messages
- Fixed `GuildBan.reason` incorrectly handling unicode reasons
- Fixed `Paginator` throwing an exception when reaching the end of pagination, instead of just ending its iteration
- Fixed `Paginator` defaulting to start at 0 for all iterations

Etc

- **BREAKING** Refactor the way Role's are managed and updated. You should update your code to use `Role.update`
- **BREAKING** Renamed `Model.update` to `Model.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
- Cleaned up various documentation
- Removed some outdated storage/etc examples
- Expanded `APIClient.guilds_roles_create` to handle more attributes
- Bumped various requirement versions

0.0.11

Additions

- Added support for Guild audit logs, exposed via `Guild.get_audit_log_entries`, `Guild.audit_log` and `Guild.audit_log_iter`. For more information see the `AuditLogEntry` model
- Added built-in Flask HTTP server which can be enabled via `http_enabled` and configured via `http_host`/`http_port` config 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.capture` contextmanager
- Added support for NSFW channels via `Channel.nsfw` and `Channel.is_nsfw`
- Added initial support for channel categories via `Channel.parent_id` and `Channel.parent`
- Added various setters for updating Channel properties, e.g. `Channel.set_topic`
- Added support for audit log reasons, accessible through passing `reason` to various methods
- Added `disco.util.snowflake.from_timestamp_ms`
- Added support for `on_complete` callback within DCADOpusEncoderPlayable
- **BREAKING** Added new custom queue types `BaseQueue`/`PlayableQueue` for use w/ `Player`.
- `queue` can be passed when creating a `Player`, should inherit from BaseQueue
- Users who previously utilized the `put` method of the old `Player.queue` must move to using `Player.queue.append`, or providing a custom queue implementation.
- Added `Emoji.custom` property

Fixes

- 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_message` returning None (instead of empty list) in some cases

Etc

- 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

0.0.11rc.8

Additions

- Added support for capturing the raw responses returned from the API via `APIClient.capture` contextmanager
- Added various pieces of documentation

Fixes

- Fixed Python 3 errors and Python 2 deprecation warnings for CommandError using `.message` attribute

ETC

- Grealty improved the performance of the custom HashMap
- Moved tests around and added pytest as the testing framework of choice

0.0.11rc.7

Additions

- Added support for new NSFW attribute of channels
- `Channel.nsfw`
- `Channel.set_nsfw`
- `Channel.is_nsfw` behaves correctly, checking both the deprecated `nsfw-` prefix and the new attribute
- Added support for `on_complete` callback within DCADOpusEncoderPlayable
- **BREAKING** Added new custom queue types `BaseQueue`/`PlayableQueue` for use w/ `Player`.
- `queue` can be passed when creating a `Player`, should inherit from BaseQueue
- Users who previously utilized the `put` method of the old `Player.queue` must move to using `Player.queue.append`, or providing a custom queue implementation.

Fixes

- 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.

ETC

- Improved log messages within GatewayClient
- Log voice endpoint within VoiceClient

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.