Rapptz
fbc4a51c35
Fix on_typing not dispatching for threads
2021-08-20 20:09:18 -04:00
Rapptz
9246bbc8e3
[commands] De-indent after hook call
...
Close #7412
2021-08-20 20:08:27 -04:00
Rapptz
63434fbfd9
Fix some type hints in user.py
2021-08-18 01:59:06 -04:00
Rapptz
68453c7bed
Add Thread.members and Thread.fetch_members
2021-08-18 01:58:16 -04:00
Rapptz
b73f02b9c3
Remove deprecated TextChannel.active_threads for Guild version
...
This also fills in the ThreadMember data from the endpoint
2021-08-18 01:52:24 -04:00
Rapptz
0df3f51a0b
Partially type-hint state.py
...
This is just work to get started. A more complete type hint will come
later.
2021-08-18 01:52:24 -04:00
Rapptz
17f0b59c76
Move explanation note for type ignore above the offending line
2021-08-18 01:24:15 -04:00
Rapptz
28ed599345
Fix Template.source_guild typehint
2021-08-18 01:23:17 -04:00
Rapptz
3b4c6269be
Fix documentation for Message.is_system
...
Also fixes some formatting
2021-08-18 01:01:24 -04:00
Rapptz
feae059c68
Remove coverage note from the documentation and README
...
A lot of people seem to point out this line as a gotcha when certain
features haven't been released yet. It's been more of a pain-point
than a marketing win since people seem to be unaware of the way this
project is developed.
Fix #7401
2021-08-15 14:01:59 -04:00
Rapptz
1e17b7fcea
Rename start_thread to create_thread for consistency
2021-08-12 00:30:50 -04:00
Rapptz
fda543c844
Fix incorrect indent
2021-08-11 06:25:22 -04:00
Rapptz
08a4db3961
Revert "Refactor Client.run to use asyncio.run"
...
This reverts commit 6e6c8a7b28 .
2021-08-11 02:16:22 -04:00
Rapptz
6e6c8a7b28
Refactor Client.run to use asyncio.run
...
This also adds asynchronous context manager support to allow for
idiomatic asyncio usage for the lower-level counterpart. At first
I wanted to remove Client.run but I figured that a lot of beginners
would have been confused or not enjoyed the verbosity of the newer
approach of using async-with.
2021-08-10 23:00:24 -04:00
Rapptz
dc9c224b54
Undo coercion of partial DMChannel to PartialMessageable
2021-08-10 22:10:45 -04:00
Rapptz
1c40d43fd1
Remove unused log lines in HTTPClient
2021-08-10 09:28:54 -04:00
Rapptz
66871f329e
Interaction.channel can be a PartialMessageable rather than Object
...
This allows it to work just fine in DMs
2021-08-10 09:28:14 -04:00
Rapptz
1279510194
Add support for PartialMessageable instances
...
This allows library users to send messages to channels without fetching
it first.
2021-08-10 09:24:49 -04:00
Rapptz
58ca9e9932
Add TextChannel.default_auto_archive_duration
2021-08-02 04:36:02 -04:00
Rapptz
0cc67e58ed
Fallback to None message_id searches in View dispatch
...
Not all persistent views have an associated message_id attached to
them.
Fix #7319
2021-08-01 03:30:45 -04:00
Rapptz
035d110837
Fix debug event toggle not triggering for raw receive
2021-08-01 02:42:11 -04:00
Rapptz
b87d306a70
Remove unused variable in view
2021-08-01 02:40:11 -04:00
Rapptz
e795d341e7
Change View dispatch mechanism to be keyed by message_id as well
...
If different persistent view instances are used within different
message_ids their callbacks will get called without differentiating
between them, leading to potential issues such as 404 errors. This
change makes it so N views with custom IDs bound to N message_ids
will no longer conflict with one another.
2021-07-31 23:08:05 -04:00
Rapptz
f72350199d
Fix typo in TextChannel.start_thread
2021-07-31 22:55:32 -04:00
Rapptz
b640493300
Add enable_debug_events parameter to enable expensive debug events
...
This should allow less dispatching during heavy gateway event streams.
2021-07-31 20:35:28 -04:00
Rapptz
2de0398d66
Cast removed thread member IDs to int
2021-07-31 20:22:51 -04:00
Rapptz
e2250d402e
Add on_socket_event_type event
2021-07-31 20:12:40 -04:00
Rapptz
2cb5ce981e
FIx on_thread_member_remove passing in None
2021-07-31 19:43:05 -04:00
Rapptz
41f3998a08
Fix on_thread_member_remove not dispatching
2021-07-31 19:40:47 -04:00
Rapptz
3a451c9c65
Change payload to use sticker_ids instead of sticker_items
2021-07-30 23:19:25 -04:00
Rapptz
655bf25cc8
Document TypeError raise in lottie sticker
2021-07-30 23:18:03 -04:00
Rapptz
6beef898c6
Rename instances of nitro to premium
2021-07-30 23:10:36 -04:00
Rapptz
658b61d468
Fix SyncWebhook not working across thread barriers
...
Fix #7310
2021-07-30 22:59:23 -04:00
Rapptz
ecf239d2a2
Fix user cache acting incorrectly with evictions
...
The first issue involved copied users which would lead to user updates
causing faster evictions of the cache than was expected.
The second issue involved users that weren't bound to an internal
lifetime eviction policy. These users would not get evicted.
For example, a user without mutual guilds or being part of the internal
cache in general (messages, DMs) would never end up being evicted for
some strange reason. To handle this case, store_user would get a
counterpart named create_user which would create a user without
potentially storing them in the cache. That way only users with a
bound lifetime within the library would be stored.
2021-07-29 01:43:23 -04:00
Rapptz
0d3bd3083c
Add Guild.get_channel_or_thread helper method
...
The name might change in the future, unsure.
2021-07-29 01:22:07 -04:00
Rapptz
731a8816bb
[commands] Check for ctx.guild instead of abc.GuildChannel
2021-07-28 23:53:24 -04:00
Rapptz
dac0267e28
Allow creating a public thread without a starter message
2021-07-28 23:50:02 -04:00
Rapptz
13251da8ce
Use a default value for StageInstance.discoverable_enabled
...
Apparently this caused crashes
2021-07-28 20:02:45 -04:00
Rapptz
9d25bb454b
Fix recursive inheritance in BaseUser
2021-07-28 20:01:44 -04:00
Rapptz
f153154b7a
Undocument Item.width
...
It doesn't serve much of a purpose to users
2021-07-09 09:14:01 -04:00
Rapptz
1a4e73d599
[commands] Get guild_id from message link for message converters
2021-07-09 09:14:01 -04:00
Rapptz
8fb998b599
Refactor utcfromtimestamp to use fromtimestamp(..., tz=utc)
2021-07-09 04:20:45 -04:00
Rapptz
826ce101fd
Change WEBHOOK_UPDATE to use guild information from gateway
...
This changes the lookup from unnecessary O(n) to two amortised O(1)
lookups. This event pretty much always has a guild_id so the original
code was always a performance bottleneck.
2021-07-08 21:53:26 -04:00
Rapptz
b4e39668fb
Change CHANNEL_PINS_UPDATE to use guild information from gateway
...
This changes the channel lookup from O(n) to two amortised O(1) lookups
2021-07-08 21:51:21 -04:00
Rapptz
af8742a911
Use a specific tag type for member and user comparisons
...
The previous protocol based tag type caused significant overhead
(in the magnitude of seconds). Removing this should simplify object
creation by removing typing.Generic from the __mro__
2021-07-08 10:17:44 -04:00
Rapptz
8df35c83a9
Remove extraneous dict assignment from view store
2021-07-07 20:19:17 -04:00
Rapptz
74e1ab09a0
Remove channel type coercion in factory methods
...
This caused unnecessary isinstance checks which were slowing down
channel creation at scale
2021-07-07 20:19:17 -04:00
Rapptz
03cd6ff433
Remove calls to gc.collect in ConnectionState
...
For some bots this was actually a performance bottleneck, might as
well remove it if it causes bad performance
2021-07-07 20:19:17 -04:00
Rapptz
99b8ae35ba
Change _Overwrite to get dict entries rather than mutate
2021-07-07 20:19:17 -04:00
Rapptz
cb2363f0fd
Move global user storage from WeakValueDictionary to dict
...
Profiling showed that WeakValueDictionary caused rather significant
and noticeable slowdowns during startup. Since the only thing it was
used for was to automatically remove the key from the mapping when
the reference count reaches zero, the same could theoretically be
accomplished by using the __del__ special method. There is a chance
that this could lead to a memory leak since the __del__ method is not
always called, but the only instances of this happening are during
interpreter shutdown to my knowledge and at that point the mapping
is the least of my concern.
2021-07-07 20:19:17 -04:00
Rapptz
88d825a803
Allow use of orjson instead of json
...
The difference in speed seems negligible at start up, which is when
most time is taken for actually parsing JSON. I could potentially be
missing something but profiling didn't point to any discernable
difference.
2021-07-07 20:19:17 -04:00
Rapptz
c1c6457598
Separate member_update and presence_update events
2021-07-04 21:40:30 -04:00
Rapptz
c2acb0a114
Update README to point to 3.8 requirement
2021-07-04 21:26:27 -04:00
Rapptz
feb0f7f29d
Add SelectOption.__str__
2021-07-04 21:20:48 -04:00
Rapptz
49f8073262
Fix Permission serialisation in audit logs
...
Fix #7171
2021-07-04 19:13:21 -04:00
Rapptz
750ba88f2c
Fix typing errors with Client
2021-07-04 07:55:20 -04:00
Rapptz
074f34a5fa
Specify View timeouts is in seconds
2021-07-04 07:07:38 -04:00
Rapptz
7d9074db8a
Fix type errors and potentially unbound code in http.py
2021-07-04 06:18:34 -04:00
Rapptz
4152819a3c
Ignore linting error when accessing Python 3.10 unions
2021-07-04 05:55:29 -04:00
Rapptz
5d798aa5e6
Fix some typing errors and reformat enums.py
2021-07-04 05:32:26 -04:00
Rapptz
828e47d83f
Document on_thread_join also applying to thread creation
2021-07-04 04:55:12 -04:00
Rapptz
23a69144b6
Add a warning in on_interaction
2021-07-04 03:06:36 -04:00
Rapptz
d047cebc35
[commands] Remove window reassignment when tokens reach 0
2021-07-04 03:05:06 -04:00
Rapptz
c748e4bce5
Mention ephemeral messages can only be edited with raw method
2021-07-03 21:45:15 -04:00
Rapptz
097b6064f1
Fix ui.Button constructor default style to match the decorator
2021-07-03 21:29:28 -04:00
Rapptz
17268c3368
Add MessageFlags.ephemeral
2021-07-03 21:29:28 -04:00
Rapptz
93cc1bdd79
Fix typing errors in PartialEmoji
2021-07-03 11:52:38 -04:00
Rapptz
8b4dd34328
Document TextChannel.start_thread return type
2021-07-03 11:52:20 -04:00
Rapptz
3d0dd5bc1b
Change Message.__repr__ to show inherited type name
2021-07-03 11:02:32 -04:00
Rapptz
0b577fa209
Add support for fetching the original interaction response message
2021-07-03 11:00:48 -04:00
Rapptz
be5603141e
Remove slots from flags
...
Fix #7159
2021-07-03 10:52:35 -04:00
Rapptz
bba4d6c4e4
Fix typo with exception name in InteractionResponse
2021-07-03 08:49:07 -04:00
Rapptz
9f981e718b
Mention the discord.ui types in the read-only component types
2021-07-03 08:39:02 -04:00
Rapptz
88620d052a
Typehint permissions
2021-07-03 08:30:27 -04:00
Rapptz
8760b01e76
Add Interaction.permissions to get resolved permissions
2021-07-03 07:07:54 -04:00
Rapptz
12e90f9c6d
Type hint instance variables in interactions
2021-07-03 06:56:30 -04:00
Rapptz
a8db8546db
Typehint error.py
2021-07-03 00:54:36 -04:00
Rapptz
0fae0b4995
Use "raised" instead of "thrown" for exception documentation
2021-07-03 00:35:21 -04:00
Rapptz
7ca90874b9
Raise an exception if an interaction has been responded before
...
Fix #7153
2021-07-03 00:30:32 -04:00
Rapptz
d7ed884593
Rework view timeouts to work as documented
2021-07-02 09:17:32 -04:00
Rapptz
a3d7e06f25
[commands] Add back CommandOnCooldown.type
2021-07-02 05:39:54 -04:00
Rapptz
982140b5f7
[commands] Mention that dynamic_cooldown callable can return None
2021-07-02 05:35:38 -04:00
Rapptz
69c400d813
Add Thread.mention
2021-07-01 20:51:56 -04:00
Rapptz
9ac459b5d3
Add a default style for buttons
...
This makes it easier to create URL buttons since the library will
automatically assign the proper style for it.
2021-07-01 20:45:38 -04:00
Rapptz
4f0e907e44
Add ButtonStyle.url alias for ButtonStyle.link
2021-07-01 20:42:56 -04:00
Rapptz
812bfbe6f9
Show Select.values more prominently in the documentation
2021-07-01 20:33:57 -04:00
Rapptz
ed6c061d69
[commands] Fix guild channel converters to work in DMs
...
Fix #7147
2021-07-01 07:46:02 -04:00
Rapptz
12e3eba011
Add Select to the docs
2021-06-30 03:54:30 -04:00
Rapptz
c1f1c67eed
Change timeout parameter in View.from_message to keyword only
2021-06-30 03:15:45 -04:00
Rapptz
d8075d5412
Add View.from_message to convert message components to a View
2021-06-30 03:06:51 -04:00
Rapptz
157caaec7c
Add conversion routine for SelectMenu to ui.Select
2021-06-30 02:55:03 -04:00
Rapptz
62dad0f7bf
Fix potential None access in various StageChannel properties
2021-06-30 01:31:57 -04:00
Rapptz
1aeec34f84
Typehint Member and various typing fixes
2021-06-30 01:28:35 -04:00
Rapptz
44d1d29708
Add explicit types to variables in Message types
2021-06-29 23:56:02 -04:00
Rapptz
ea1d423904
Check for None in VocalGuildChannel.voice_states
2021-06-29 23:16:39 -04:00
Rapptz
6f3b8072d6
Rework User.edit to have proper typing
2021-06-29 22:05:29 -04:00
Rapptz
2d7c709235
Rework Role.edit to not rely on previous role state
2021-06-29 22:02:16 -04:00
Rapptz
a372aadb2d
Rework Member.edit to not use kwargs for better typing
2021-06-29 21:54:24 -04:00
Rapptz
53ef89c29f
Use a property for StreamIntegration.expire_behavior alias
2021-06-29 21:46:19 -04:00
Rapptz
c6a69062a8
Rework StreamIntegration.edit to not rely on state
2021-06-29 21:45:06 -04:00