61 Commits

Author SHA1 Message Date
c811e2b578
Extend File to handle streams (#85) 2025-06-15 15:20:04 -06:00
9f2fc0857b
feat(client): sync commands on ready (#86) 2025-06-15 15:20:00 -06:00
775dce0c80
Store shard id on guild and expose shard property (#87) 2025-06-15 15:19:58 -06:00
3a264f4530 feat(ext-loader): Support async setup functions
Allow extension `setup` functions to be asynchronous. The loader now checks if `module.setup` returns an awaitable and runs it using asyncio, handling cases where an event loop is already running or not.

This enables extensions to perform asynchronous initialization tasks.
2025-06-15 15:17:42 -06:00
e693f00abe
Add VoiceStateUpdate event (#70)
Some checks failed
Deploy MkDocs / deploy (push) Has been cancelled
2025-06-11 18:24:16 -06:00
235ea8fc69
Add get_or_fetch cache helper and tests (#72) 2025-06-11 18:24:11 -06:00
3c638d17ce
Adds latency display and improves bot configuration
Adds millisecond latency property to gateway and client for more precise monitoring.

Enhances ping command to display gateway latency for better debugging.

Configures message content intent and mention replies for improved bot functionality.

Adds dotenv support for cleaner environment variable management.

Formats error classes for better code consistency and readability.
2025-06-11 15:13:37 -06:00
a702c66603
Merge branch 'master' of https://github.com/Slipstreamm/disagreement 2025-06-11 14:52:49 -06:00
66288ba920
Adds comprehensive Discord API error code mapping
Implements specific exception classes for all Discord API error codes to provide more granular error handling and better debugging experience.

Creates individual exception classes for each Discord error code (10001-520006) with descriptive names and documentation strings that include the official error messages and codes.

Updates HTTP client to automatically map Discord error codes to their corresponding exception classes, allowing developers to catch specific error types rather than generic HTTP exceptions.

Includes comprehensive test coverage for the new error code mapping functionality to ensure correct exception raising based on API responses.
2025-06-11 14:47:23 -06:00
15d95bc786
Use asyncio.get_running_loop fallback (#50) 2025-06-11 14:27:11 -06:00
d4bf99eac6
Add embed helper methods and docs (#54) 2025-06-11 14:27:01 -06:00
cfb8bedeaf
Add volume and options support to audio (#55) 2025-06-11 14:26:58 -06:00
35eb459c36
Add clean_content property and tests (#56) 2025-06-11 14:26:55 -06:00
afeb86a395
Add guild widget support (#59) 2025-06-11 14:26:49 -06:00
39162b6543
feat: add Activity presence models (#60) 2025-06-11 14:26:47 -06:00
c47a7e49f8
Add LRU support to Cache and message cache size option (#61) 2025-06-11 14:26:44 -06:00
45a5ef1fb5
Improves asyncio loop handling and test initialization
Replaces deprecated get_event_loop() with proper running loop detection and fallback to new loop creation for better asyncio compatibility.

Fixes test suite by replacing manual Client instantiation with proper constructor calls, ensuring all internal caches and attributes are correctly initialized.

Updates cache access patterns to use new cache API methods consistently across the codebase.
2025-06-11 02:25:24 -06:00
9509213f7a
Add guild templates support (#41) 2025-06-10 21:10:29 -06:00
2d6c2cb0be
Add stage channel and instance support (#43) 2025-06-10 21:08:32 -06:00
7595e33fd1
Emit shard lifecycle events (#45)
Squash and merge PR #45
2025-06-10 20:50:25 -06:00
b0f9381fa6 Add max concurrency support 2025-06-10 20:48:19 -06:00
669f00e745
Add extensive color helper methods (#40) 2025-06-10 18:42:52 -06:00
97273ce655
Format with black 2025-06-10 18:26:23 -06:00
92b0bc5804
Add webhook send capability (#33) 2025-06-10 18:01:28 -06:00
71097c6fbe
Add async message pager and channel history (#32) 2025-06-10 18:01:21 -06:00
900cd27cc3
Merge pull request #28 from Slipstreamm/codex/add-display_name-property-on-member
Merge PR #28
2025-06-10 17:57:40 -06:00
fdfb2034d5
Merge remote-tracking branch 'origin/master' into codex/add-reaction-methods-to-message 2025-06-10 17:57:26 -06:00
b375dc7d05
Merge remote-tracking branch 'origin/master' into codex/add-display_name-property-on-member 2025-06-10 17:57:06 -06:00
b9bfa24511
Merge pull request #26 from Slipstreamm/codex/implement-ratelimiter-in-httpclient
Merge PR #26
2025-06-10 17:56:28 -06:00
c27a25955a
Merge remote-tracking branch 'origin/master' into codex/implement-gatewayintent.none-returning-0 2025-06-10 17:56:02 -06:00
0630c8b916
Merge remote-tracking branch 'origin/master' into codex/implement-ratelimiter-in-httpclient 2025-06-10 17:55:09 -06:00
eb8d7a9656
Merge pull request #31 from Slipstreamm/codex/add-before_loop-and-after_loop-callbacks
Merge PR #31
2025-06-10 17:54:08 -06:00
d67097a619
Merge pull request #34 from Slipstreamm/codex/create-async-iterator-for-message-history
Merge PR #34
2025-06-10 17:54:04 -06:00
39b05bc958 Add message history iterator 2025-06-10 17:53:14 -06:00
df77a3fcec Add before/after loop callbacks 2025-06-10 17:52:05 -06:00
105640e54b Add reaction helpers and update tests 2025-06-10 17:52:02 -06:00
dfbda351e4 Add Member.display_name property and update docs/tests 2025-06-10 17:52:01 -06:00
8b0e6fcce2 Add GatewayIntent.none method with docs and tests 2025-06-10 17:52:00 -06:00
e55e963a59 Add rate limiter integration with HTTPClient 2025-06-10 17:51:58 -06:00
c0066525db
Add test for Color.parse method to validate tuple input for RGB values 2025-06-10 17:51:22 -06:00
9df06868a4
Allow color parameters to accept multiple formats (#25) 2025-06-10 17:45:52 -06:00
60a183742a
Updates Python version requirements and refactors hybrid commands
Lowers minimum Python requirement from 3.11 to 3.10 to increase compatibility while updating CI to use Python 3.13 for testing.

Extracts hybrid command functionality into a separate module to improve code organization and reduce complexity in the main commands module.

Updates test timeouts and dependency versions to ensure reliable test execution and modern package compatibility.
2025-06-10 16:39:12 -06:00
81ea79a94d
Refactor: Move permission calculation to Channel model
The _compute_permissions helper function has been simplified by delegating the complex permission calculation logic to a new channel.permissions_for(member) method.

This refactoring encapsulates the permission logic within the Channel model, where it belongs. It removes duplicate and complex code from the command decorator, improving maintainability and separation of concerns.

The tests for requires_permissions have been updated to mock the new permissions_for method, resulting in cleaner tests that are no longer concerned with the internal implementation details of how permissions are calculated.
2025-06-10 16:05:33 -06:00
61222e1df7
Fix target ID assignment in Channel permissions and add guild_id to test Channel class 2025-06-10 16:00:24 -06:00
21cdb921a8
Add TextChannel purge support (#12) 2025-06-10 15:57:00 -06:00
e9375a5a36
Implement requires_permissions decorator (#22)
* Add permissions check decorator

* Refactor command decorator and add permission computation logic
2025-06-10 15:54:00 -06:00
1ff56106c9
Implement gateway reconnection backoff (#24) 2025-06-10 15:49:11 -06:00
09fae8a489
Add Webhook.from_url utility (#14) 2025-06-10 15:47:34 -06:00
7f0b03fa69
Add file upload support (#13) 2025-06-10 15:45:25 -06:00
06f972851b
feat: emit raw gateway events (#15) 2025-06-10 15:45:14 -06:00