Commit Graph

2977 Commits

Author SHA1 Message Date
0542b129c2 Fix WebhookMessage.edit documentation 2021-04-15 09:03:46 -04:00
1f74b051a8 Fix rate limit handling with retry_after precision change 2021-04-15 08:34:58 -04:00
a6f7213c89 Rewrite webhooks to play better with typings and rate limits
This unfortunately required splitting the types into two. This led to
a lot of unfortunate code duplication that I didn't really enjoy
writing.

The new design allows users to pass an authentication token to make
webhook requests without the webhook token and allows to finally
edit the webhook channel.

The new design also uses a contextvar to store rate limiting
information so multiple instances or recreating instances no longer
clears the ratelimiting state since it's now essentially a "global"
object.

Closes #6525, closes #6662, closes #2509, closes #1761
2021-04-15 08:04:32 -04:00
5ea5f32479 [commands] Fix missing re import in Context 2021-04-15 08:04:24 -04:00
d21e65ce47 Add SystemChannelFlags.guild_reminder_notifications 2021-04-15 08:03:56 -04:00
65d48302ad Fix guild.chunk() not working on evicted guilds
If you're trying to chunk a guild that the bot is not in, 
it'll just hang on the chunk coro forever. It's weird, I know.
2021-04-14 22:10:47 -04:00
ed3c141f5e [commands] Add clean_prefix attribute to commands.Context 2021-04-14 22:09:40 -04:00
208b16ed1b Add note to member docs about Spotify limitation 2021-04-14 22:02:49 -04:00
9f1a96ea9b Remove fetch_offline_members param for Client 2021-04-14 20:58:49 -04:00
930c416ea7 Fix exception for invalid channel types 2021-04-14 01:14:00 -04:00
da6119e04c Fix fail_if_not_exists not being set when constructed with state 2021-04-14 00:50:37 -04:00
30310b9ab6 Add NSFW for Guilds 2021-04-14 00:48:51 -04:00
dea92a69dc Remove support for guild subscriptions 2021-04-14 00:47:46 -04:00
23aaa75802 Add StageChannel to abc.GuildChannel docs 2021-04-13 01:19:29 -04:00
496fcf8005 [docs] Fix reference to Guild.id 2021-04-13 01:01:04 -04:00
a8da7d03b9 Remove AutoShardedClient.request_offline_members 2021-04-12 05:28:18 -04:00
ef4394f87d Add support for role objects in GuildChannel.permissions_for 2021-04-11 22:45:49 -04:00
1209585de5 Remove User.permissions_in
This seemed to only cause confusion.
2021-04-11 22:21:36 -04:00
a8b3cfa592 Remove comment that doesn't apply anymore 2021-04-11 22:20:31 -04:00
9b94fe1ce0 Remove superfluous unused payload parameter 2021-04-11 22:13:48 -04:00
7bdaa793f6 Create temporary DMChannels from message create events
This allows for DMChannels to work without falling back to the
Object error case since there is enough information to build a pseudo
DMChannel object.

This is a breaking change since it changes the type of
DMChannel.recipient to Optional[User] for when this faux object is
created.
2021-04-11 22:09:10 -04:00
0f3f2cbeea Fix spelling error in utils.__all__ 2021-04-11 20:18:56 -04:00
74b07a3218 [commands] Fix Command.clean_params to return a regular dict 2021-04-11 16:30:28 -04:00
af5964358d [commands] Strip text to remove spaces before ellipsis 2021-04-11 15:19:45 -04:00
7cbe942a64 Use v8 overwrite type when creating a channel 2021-04-11 15:16:52 -04:00
f1fac96e33 Remove private_channel_(delete/create) events 2021-04-11 15:13:23 -04:00
74d8ad2013 [commands] Add support for Python 3.10 Union typing 2021-04-11 02:11:24 -04:00
1ecadf057e [commands] Fix errors with cooldown mappings 2021-04-11 01:00:04 -04:00
7d79b4ba55 Remove Member related handling in PRESENCE_UPDATE 2021-04-11 00:57:59 -04:00
217c2a1cc5 Fix stray AttributeError in Guild._from_data with member cache 2021-04-11 00:44:27 -04:00
40cf397ce6 Permission related fixes for v8 2021-04-11 00:39:13 -04:00
4c565e5299 add reply and application_command types 2021-04-11 00:39:13 -04:00
7afcacc9a1 Remove MemberCacheFlags.online
v8 no longer gives enough data for this to be possible
2021-04-11 00:39:13 -04:00
d85805ab6d First pass at supporting v8 API 2021-04-11 00:39:13 -04:00
7f91ae8b67 [commands] use __args__ and __origin__ where applicable 2021-04-11 00:38:17 -04:00
c54c4cb215 [commands] Fix repr for Greedy 2021-04-10 22:34:24 -04:00
3151672cfe [commands] Refactor typing evaluation to not use get_type_hints
get_type_hints had a few issues:

1. It would convert = None default parameters to Optional
2. It would not allow values as type annotations
3. It would not implicitly convert some string literals as ForwardRef

In Python 3.9 `list['Foo']` does not convert into
`list[ForwardRef('Foo')]` even though `typing.List` does this
behaviour. In order to streamline it, evaluation had to be rewritten
manually to support our usecases.

This patch also flattens nested typing.Literal which was not done
until Python 3.9.2.
2021-04-10 20:56:08 -04:00
27886e5aa4 [commands] Remove legacy ExtensionNotFound.original attribute 2021-04-10 15:52:53 -04:00
d5ad269b35 Fix Intents resolution in the docs 2021-04-10 15:50:46 -04:00
42c3ee6eed Bring back discord module in discord.ext.commands documentation 2021-04-10 15:49:39 -04:00
8e299e80f8 Update Sphinx to 3.5.3 2021-04-10 15:33:15 -04:00
296bd069c1 Remove current module reference in commands API docs 2021-04-10 14:59:26 -04:00
b20e92efd8 [docs] Fix references to Greedy 2021-04-10 14:59:09 -04:00
353737239a [commands] Minimise code duplication in channel converters 2021-04-10 14:01:26 -04:00
ec71eb2fcb Added discord.StageChannel in documentation 2021-04-10 13:49:46 -04:00
bcd3a00eaf [commands] Make commands.Greedy a typing.Generic 2021-04-10 07:27:32 -04:00
4fee632526 Make the style of external and internal cross-references consistent 2021-04-10 04:03:22 -04:00
4591705b55 Add missing attribute tables 2021-04-10 03:42:42 -04:00
f2d5ab6f80 [commands] Provide a dynamic cooldown system 2021-04-10 03:30:01 -04:00
ea32147d02 Fix all warnings with Sphinx 2021-04-10 03:27:40 -04:00