disagreement 0.0.1__py3-none-any.whl → 0.1.0rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- disagreement/__init__.py +8 -3
- disagreement/audio.py +116 -0
- disagreement/client.py +176 -6
- disagreement/color.py +50 -0
- disagreement/components.py +2 -2
- disagreement/errors.py +13 -8
- disagreement/event_dispatcher.py +102 -45
- disagreement/ext/__init__.py +0 -0
- disagreement/ext/app_commands/__init__.py +46 -0
- disagreement/ext/app_commands/commands.py +513 -0
- disagreement/ext/app_commands/context.py +556 -0
- disagreement/ext/app_commands/converters.py +478 -0
- disagreement/ext/app_commands/decorators.py +569 -0
- disagreement/ext/app_commands/handler.py +627 -0
- disagreement/ext/commands/__init__.py +57 -0
- disagreement/ext/commands/cog.py +155 -0
- disagreement/ext/commands/converters.py +175 -0
- disagreement/ext/commands/core.py +497 -0
- disagreement/ext/commands/decorators.py +192 -0
- disagreement/ext/commands/errors.py +76 -0
- disagreement/ext/commands/help.py +37 -0
- disagreement/ext/commands/view.py +103 -0
- disagreement/ext/loader.py +54 -0
- disagreement/ext/tasks.py +182 -0
- disagreement/gateway.py +67 -21
- disagreement/http.py +104 -3
- disagreement/models.py +308 -1
- disagreement/shard_manager.py +2 -0
- disagreement/utils.py +10 -0
- disagreement/voice_client.py +42 -0
- {disagreement-0.0.1.dist-info → disagreement-0.1.0rc1.dist-info}/METADATA +47 -33
- disagreement-0.1.0rc1.dist-info/RECORD +52 -0
- disagreement-0.0.1.dist-info/RECORD +0 -32
- {disagreement-0.0.1.dist-info → disagreement-0.1.0rc1.dist-info}/WHEEL +0 -0
- {disagreement-0.0.1.dist-info → disagreement-0.1.0rc1.dist-info}/licenses/LICENSE +0 -0
- {disagreement-0.0.1.dist-info → disagreement-0.1.0rc1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: disagreement
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.1.0rc1
|
4
4
|
Summary: A Python library for the Discord API.
|
5
5
|
Author-email: Slipstream <me@slipstreamm.dev>
|
6
6
|
License: BSD 3-Clause
|
@@ -60,29 +60,33 @@ Requires Python 3.11 or newer.
|
|
60
60
|
```python
|
61
61
|
import asyncio
|
62
62
|
import os
|
63
|
+
|
63
64
|
import disagreement
|
65
|
+
from disagreement.ext import commands
|
66
|
+
|
67
|
+
|
68
|
+
class Basics(commands.Cog):
|
69
|
+
def __init__(self, client: disagreement.Client) -> None:
|
70
|
+
super().__init__(client)
|
71
|
+
|
72
|
+
@commands.command()
|
73
|
+
async def ping(self, ctx: commands.CommandContext) -> None:
|
74
|
+
await ctx.reply("Pong!")
|
75
|
+
|
76
|
+
|
77
|
+
token = os.getenv("DISCORD_BOT_TOKEN")
|
78
|
+
if not token:
|
79
|
+
raise RuntimeError("DISCORD_BOT_TOKEN environment variable not set")
|
80
|
+
|
81
|
+
client = disagreement.Client(token=token, command_prefix="!")
|
82
|
+
client.add_cog(Basics(client))
|
83
|
+
|
84
|
+
|
85
|
+
async def main() -> None:
|
86
|
+
await client.run()
|
64
87
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
@client.on_event('MESSAGE_CREATE')
|
69
|
-
async def on_message(message: disagreement.Message):
|
70
|
-
print(f"Received: {message.content} from {message.author.username}")
|
71
|
-
if message.content.lower() == '!ping':
|
72
|
-
await message.reply('Pong!')
|
73
|
-
|
74
|
-
async def main():
|
75
|
-
if not client.token:
|
76
|
-
print("Error: DISCORD_BOT_TOKEN environment variable not set.")
|
77
|
-
return
|
78
|
-
try:
|
79
|
-
async with client:
|
80
|
-
await asyncio.Future() # run until cancelled
|
81
|
-
except KeyboardInterrupt:
|
82
|
-
print("Bot shutting down...")
|
83
|
-
# Add any other specific exception handling from your library, e.g., disagreement.AuthenticationError
|
84
|
-
|
85
|
-
if __name__ == '__main__':
|
88
|
+
|
89
|
+
if __name__ == "__main__":
|
86
90
|
asyncio.run(main())
|
87
91
|
```
|
88
92
|
|
@@ -117,21 +121,20 @@ setup_logging(logging.DEBUG, file="bot.log")
|
|
117
121
|
### Defining Subcommands with `AppCommandGroup`
|
118
122
|
|
119
123
|
```python
|
120
|
-
from disagreement.ext.app_commands import AppCommandGroup
|
124
|
+
from disagreement.ext.app_commands import AppCommandGroup, slash_command
|
125
|
+
from disagreement.ext.app_commands.context import AppCommandContext
|
126
|
+
|
127
|
+
settings_group = AppCommandGroup("settings", "Manage settings")
|
128
|
+
admin_group = AppCommandGroup("admin", "Admin settings", parent=settings_group)
|
121
129
|
|
122
|
-
settings = AppCommandGroup("settings", "Manage settings")
|
123
130
|
|
124
|
-
@
|
125
|
-
async def show(ctx):
|
126
|
-
"""Displays a setting."""
|
131
|
+
@slash_command(name="show", description="Display a setting.", parent=settings_group)
|
132
|
+
async def show(ctx: AppCommandContext, key: str):
|
127
133
|
...
|
128
134
|
|
129
|
-
@settings.group("admin", description="Admin settings")
|
130
|
-
def admin_group():
|
131
|
-
pass
|
132
135
|
|
133
|
-
@
|
134
|
-
async def set_setting(ctx, key: str, value: str):
|
136
|
+
@slash_command(name="set", description="Update a setting.", parent=admin_group)
|
137
|
+
async def set_setting(ctx: AppCommandContext, key: str, value: str):
|
135
138
|
...
|
136
139
|
## Fetching Guilds
|
137
140
|
|
@@ -146,13 +149,20 @@ roles = await client.fetch_roles(guild.id)
|
|
146
149
|
|
147
150
|
## Sharding
|
148
151
|
|
149
|
-
To run your bot across multiple gateway shards, pass
|
152
|
+
To run your bot across multiple gateway shards, pass ``shard_count`` when creating
|
150
153
|
the client:
|
151
154
|
|
152
155
|
```python
|
153
156
|
client = disagreement.Client(token=BOT_TOKEN, shard_count=2)
|
154
157
|
```
|
155
158
|
|
159
|
+
If you want the library to determine the recommended shard count automatically,
|
160
|
+
use ``AutoShardedClient``:
|
161
|
+
|
162
|
+
```python
|
163
|
+
client = disagreement.AutoShardedClient(token=BOT_TOKEN)
|
164
|
+
```
|
165
|
+
|
156
166
|
See `examples/sharded_bot.py` for a full example.
|
157
167
|
|
158
168
|
## Contributing
|
@@ -161,3 +171,7 @@ Contributions are welcome! Please open an issue or submit a pull request.
|
|
161
171
|
|
162
172
|
See the [docs](docs/) directory for detailed guides on components, slash commands, caching, and voice features.
|
163
173
|
|
174
|
+
## License
|
175
|
+
|
176
|
+
This project is licensed under the BSD 3-Clause license. See the [LICENSE](LICENSE) file for details.
|
177
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
disagreement/__init__.py,sha256=hGvjtT1V8PPnxXYN_86hYZkHBvyP6u-tIoKD_4ZaJwo,1069
|
2
|
+
disagreement/audio.py,sha256=P6inobI8CNhNVkaRKU58RMYtLq1RrSREioF0Mui5VlA,3351
|
3
|
+
disagreement/cache.py,sha256=juabGFl4naQih5OUIVN2aN-vAfw2ZC2cI38s4nGEn8U,1525
|
4
|
+
disagreement/client.py,sha256=hwZtargXv4awVylzQMQUlb1WNWpvuICf5sIBK8Tn0bc,51858
|
5
|
+
disagreement/color.py,sha256=XK0Cw-q0_R5JMbHI1PNQeh1885TSplUHcLe2xF-oGho,1443
|
6
|
+
disagreement/components.py,sha256=tEYJ2RHVpIFtZuPPxZ0v8ssUw_x7ybhYBzHNsRiXXvU,5250
|
7
|
+
disagreement/enums.py,sha256=LLeXdYKcx4TUhlojNV5X4NDuvscMbnteWRNW79d0C2c,9668
|
8
|
+
disagreement/error_handler.py,sha256=c2lb6aTMnhTtITQuR6axZUtEaasYKUgmdSxAHEkeq50,1028
|
9
|
+
disagreement/errors.py,sha256=XiYVPy8uFUGVi_EIf81yK7QbC7KyN4JHplSJSWw2RRk,3185
|
10
|
+
disagreement/event_dispatcher.py,sha256=mp4LVhIj0SW1P2NruqbYpZoYH33X5rXvkAl3-RK40kE,11460
|
11
|
+
disagreement/gateway.py,sha256=mhFtBm_YPtbleQJklv3ph3DXE4LZxC1BhtNkd7Y-akQ,23113
|
12
|
+
disagreement/http.py,sha256=uFKowJZYmguz_fe9PWEh6tfq2rvcEUUy2Abbqx9h-T0,27534
|
13
|
+
disagreement/hybrid_context.py,sha256=VYCmcreTZdPBU9v-Cy48W38vgWO2t8nM2ulC6_z4HjU,1095
|
14
|
+
disagreement/i18n.py,sha256=1L4rcFuKP0XjHk9dVwbNh4BkLk2ZlxxZ_-tecGWa9S0,718
|
15
|
+
disagreement/interactions.py,sha256=corwLVsbWM2JXHk5u8VR_Qp3GINLcKFo2y7dyI53QFA,21645
|
16
|
+
disagreement/logging_config.py,sha256=4q6baQPE6X_0lfaBTFMU1uqc03x5SbJqo2hsApdDFac,686
|
17
|
+
disagreement/models.py,sha256=v_BfG7waYmzwouJUP6w3V94Y1lRR6AgyGvAaiZX_K1Y,71173
|
18
|
+
disagreement/oauth.py,sha256=TfDdCwg1J7osM9wDi61dtNBA5BrQk5DeQrrHsYycH34,2810
|
19
|
+
disagreement/permissions.py,sha256=7g5cIlg-evHXOL0-pmtT5EwqcB-stXot1HZSLz724sE,3008
|
20
|
+
disagreement/rate_limiter.py,sha256=ubwR_UTPs2MotipBdtqpgwQKx0IHt2I3cdfFcXTFv7g,2521
|
21
|
+
disagreement/shard_manager.py,sha256=e9F8tx_4IEOlTX3-S3t51lfJToc6Ue3RVBzoNAiVKxs,2161
|
22
|
+
disagreement/typing.py,sha256=_1oFWfZ4HyH5Q3bnF7CO24s79z-3_B5Qb69kWiwLhhU,1242
|
23
|
+
disagreement/utils.py,sha256=Nj6rx--KnWCaamRHj1B2OXsZCznaMLrNdce-XY3YDg0,220
|
24
|
+
disagreement/voice_client.py,sha256=i_67gJ-SQWi9YH-pgtFM8N0lCYznyuQImyL-mf2O7KQ,5384
|
25
|
+
disagreement/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
+
disagreement/ext/loader.py,sha256=9_uULvNAa-a6UiaeQhWglwgIrHEPKbf9bnWtSL1KV5Q,1408
|
27
|
+
disagreement/ext/tasks.py,sha256=4MueuF6r9iPJ-2cEOw1A8tgn6SCetQc6Sr442-g8OrQ,5591
|
28
|
+
disagreement/ext/app_commands/__init__.py,sha256=DQ3vHz2EaJ_hTlvFRpRSofPlCuFueRoLgLriECI5xFg,991
|
29
|
+
disagreement/ext/app_commands/commands.py,sha256=cY9gyXovnyBIEWmhUPe8YZfw_WXCA1qXWDWTMmX_Vm8,24095
|
30
|
+
disagreement/ext/app_commands/context.py,sha256=Xcm4Ka5K5uTQGviixF5LeCDdOdF9YQS5F7lZi2m--8s,20831
|
31
|
+
disagreement/ext/app_commands/converters.py,sha256=J1VEmo-7H9K7kGPJodu5FX4RmFFI1BuzhlQAEs2MsD4,21036
|
32
|
+
disagreement/ext/app_commands/decorators.py,sha256=smgx5RHedmgn7wxhBza78rQo5Guz8PEDDOvK5niJlMc,23236
|
33
|
+
disagreement/ext/app_commands/handler.py,sha256=XO9yLgcV7aIxzhTMgFcQ1Tbr4GRZRfDBzkIAkiu6mw8,26045
|
34
|
+
disagreement/ext/commands/__init__.py,sha256=HxZWVfc4qvP_bCRbKTVZoMqXFq19Gj4mQvRumvQiApQ,1130
|
35
|
+
disagreement/ext/commands/cog.py,sha256=U57yMrUpqj3_-W1-koyfGgH43MZG_JzJOl46kTur7iA,6636
|
36
|
+
disagreement/ext/commands/converters.py,sha256=mh8xJr1FIiah6bdYy0KsdccfYcPii2Yc_IdhzCTw5uE,5864
|
37
|
+
disagreement/ext/commands/core.py,sha256=SAHvmhFKmsPWP-h3SzZ_sS2U8BSyM0clURqtfrGV8T0,19144
|
38
|
+
disagreement/ext/commands/decorators.py,sha256=Ox_D9KCFtMa-RiljFjOcsPb3stmDStRKeLw1DVeOdAw,6608
|
39
|
+
disagreement/ext/commands/errors.py,sha256=cG5sPA-osUq2gts5scrl5yT-BHEYVHLTb4TULjAmbaY,2065
|
40
|
+
disagreement/ext/commands/help.py,sha256=yw0ydupOsPwmnhsIIoxa93xjj9MAcBcGfD8BXa7V8G8,1456
|
41
|
+
disagreement/ext/commands/view.py,sha256=3Wo4gGJX9fb65qw8yHFwMjnAeJvMJAx19rZNHz-ZDUs,3315
|
42
|
+
disagreement/ui/__init__.py,sha256=PLA6eHiq9cu7JDOKS-7MKtaFhlqswjbI4AEUlpnbgO0,307
|
43
|
+
disagreement/ui/button.py,sha256=GHbY3-yMrvv6u674-qYONocuC1e2a0flEWjPKwJXKDo,3163
|
44
|
+
disagreement/ui/item.py,sha256=bm-EmQEZpe8Kt8JrRw-o0uQdccgjErORcFsBqaXOcV8,1112
|
45
|
+
disagreement/ui/modal.py,sha256=FLWFy_VkZ9UAPumX3Q_bT0q7M06O1Q7XzBLhCZyhYhI,4120
|
46
|
+
disagreement/ui/select.py,sha256=XjWRlWkA09QZaDDLn-wDDOWIuj0Mb4VCWJEOAaExZXw,3018
|
47
|
+
disagreement/ui/view.py,sha256=QhWoYt39QKXwl1X6Mkm5gNNEqd8bt7O505lSpiG0L04,5567
|
48
|
+
disagreement-0.1.0rc1.dist-info/licenses/LICENSE,sha256=zfmtgJhVFHnqT7a8LAQFthXu5bP7EEHmEL99trV66Ew,1474
|
49
|
+
disagreement-0.1.0rc1.dist-info/METADATA,sha256=cFNTwfEbF3wsGzTBw16ZjYgNZbjDOexCsLlI3bSsxxE,4830
|
50
|
+
disagreement-0.1.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
51
|
+
disagreement-0.1.0rc1.dist-info/top_level.txt,sha256=t7FY_3iaYhdB6X6y9VybJ2j7UZbVeRUe9wRgH8d5Gtk,13
|
52
|
+
disagreement-0.1.0rc1.dist-info/RECORD,,
|
@@ -1,32 +0,0 @@
|
|
1
|
-
disagreement/__init__.py,sha256=ylGJLwgNmt7B71khVq2O0fG__4kjnkA35rZFX5tEDrk,907
|
2
|
-
disagreement/cache.py,sha256=juabGFl4naQih5OUIVN2aN-vAfw2ZC2cI38s4nGEn8U,1525
|
3
|
-
disagreement/client.py,sha256=pFXj7z7R1kJWz3_GWOzDYrF1S-nQ1agjcXnRTSh-PWE,45820
|
4
|
-
disagreement/components.py,sha256=W_R9iMETkQj6sr-Lzk2n7hLwLNaLWT4vBPArIPHQUNc,5232
|
5
|
-
disagreement/enums.py,sha256=LLeXdYKcx4TUhlojNV5X4NDuvscMbnteWRNW79d0C2c,9668
|
6
|
-
disagreement/error_handler.py,sha256=c2lb6aTMnhTtITQuR6axZUtEaasYKUgmdSxAHEkeq50,1028
|
7
|
-
disagreement/errors.py,sha256=rCr9jVAzK8wsS6mxieeWpffKhTDX--sHuOBz45kwsAA,3215
|
8
|
-
disagreement/event_dispatcher.py,sha256=BevGAi72qXAHN_FqCOSdvVhOhINLeI2ojyVLmvrSKJ0,9851
|
9
|
-
disagreement/gateway.py,sha256=V46WyZE1duVEvVcBYsaThWd60Xg9T2Qsqu9Y02rQwXo,21315
|
10
|
-
disagreement/http.py,sha256=1lHIEq2RRVOzzSpfj9TNGprJsMW_nhbj_8-fPr0IupI,23986
|
11
|
-
disagreement/hybrid_context.py,sha256=VYCmcreTZdPBU9v-Cy48W38vgWO2t8nM2ulC6_z4HjU,1095
|
12
|
-
disagreement/i18n.py,sha256=1L4rcFuKP0XjHk9dVwbNh4BkLk2ZlxxZ_-tecGWa9S0,718
|
13
|
-
disagreement/interactions.py,sha256=corwLVsbWM2JXHk5u8VR_Qp3GINLcKFo2y7dyI53QFA,21645
|
14
|
-
disagreement/logging_config.py,sha256=4q6baQPE6X_0lfaBTFMU1uqc03x5SbJqo2hsApdDFac,686
|
15
|
-
disagreement/models.py,sha256=TMvGP17h1LK72SlA4vNUId76LdonKAUCTzqeNJRFzVQ,61475
|
16
|
-
disagreement/oauth.py,sha256=TfDdCwg1J7osM9wDi61dtNBA5BrQk5DeQrrHsYycH34,2810
|
17
|
-
disagreement/permissions.py,sha256=7g5cIlg-evHXOL0-pmtT5EwqcB-stXot1HZSLz724sE,3008
|
18
|
-
disagreement/rate_limiter.py,sha256=ubwR_UTPs2MotipBdtqpgwQKx0IHt2I3cdfFcXTFv7g,2521
|
19
|
-
disagreement/shard_manager.py,sha256=R0HXruJ0Wda_3ftTztQx7kpI182jyuAMsjU6fDtz8Us,2039
|
20
|
-
disagreement/typing.py,sha256=_1oFWfZ4HyH5Q3bnF7CO24s79z-3_B5Qb69kWiwLhhU,1242
|
21
|
-
disagreement/voice_client.py,sha256=KdFEH8PI6v45olTYoW_-DVOuTCk8SGg7BgSzxOQsILs,3869
|
22
|
-
disagreement/ui/__init__.py,sha256=PLA6eHiq9cu7JDOKS-7MKtaFhlqswjbI4AEUlpnbgO0,307
|
23
|
-
disagreement/ui/button.py,sha256=GHbY3-yMrvv6u674-qYONocuC1e2a0flEWjPKwJXKDo,3163
|
24
|
-
disagreement/ui/item.py,sha256=bm-EmQEZpe8Kt8JrRw-o0uQdccgjErORcFsBqaXOcV8,1112
|
25
|
-
disagreement/ui/modal.py,sha256=FLWFy_VkZ9UAPumX3Q_bT0q7M06O1Q7XzBLhCZyhYhI,4120
|
26
|
-
disagreement/ui/select.py,sha256=XjWRlWkA09QZaDDLn-wDDOWIuj0Mb4VCWJEOAaExZXw,3018
|
27
|
-
disagreement/ui/view.py,sha256=QhWoYt39QKXwl1X6Mkm5gNNEqd8bt7O505lSpiG0L04,5567
|
28
|
-
disagreement-0.0.1.dist-info/licenses/LICENSE,sha256=zfmtgJhVFHnqT7a8LAQFthXu5bP7EEHmEL99trV66Ew,1474
|
29
|
-
disagreement-0.0.1.dist-info/METADATA,sha256=r9liBFa4OLtdW91XF2A7yJ7VcaOiBkmRbKVG74NEsHc,4533
|
30
|
-
disagreement-0.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
31
|
-
disagreement-0.0.1.dist-info/top_level.txt,sha256=t7FY_3iaYhdB6X6y9VybJ2j7UZbVeRUe9wRgH8d5Gtk,13
|
32
|
-
disagreement-0.0.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|