3139 Commits

Author SHA1 Message Date
8851e03a6d [commands] fix bot_has_role and is_nsfw for threads 2021-07-30 21:26:49 -04:00
60d82cf908 implement guild stickers 2021-07-30 21:25:41 -04:00
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
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
731a8816bb [commands] Check for ctx.guild instead of abc.GuildChannel 2021-07-28 23:53:24 -04:00
dac0267e28 Allow creating a public thread without a starter message 2021-07-28 23:50:02 -04:00
13251da8ce Use a default value for StageInstance.discoverable_enabled
Apparently this caused crashes
2021-07-28 20:02:45 -04:00
9d25bb454b Fix recursive inheritance in BaseUser 2021-07-28 20:01:44 -04:00
0112c2819f Fix PartialMessage rejecting Threads 2021-07-28 20:00:43 -04:00
906c13d4f0 Set Thread.member/message_count 2021-07-28 20:00:30 -04:00
a053f77275 Add system_content for thread message types, fix other system_content issues 2021-07-28 20:00:14 -04:00
51b02f2568 Change type to be compatible with the overwrites property 2021-07-28 19:59:38 -04:00
ca9b371982 Add support for discord.ui.Select.disabled 2021-07-28 19:58:39 -04:00
41e2d3c637 Allow callables in abc.Connectable.Connect 2021-07-28 19:58:01 -04:00
154c90ef59 Add audit log events for threads 2021-07-28 19:57:42 -04:00
1472e9ed7c Fixes minor grammatical error in Command.update 2021-07-28 19:56:36 -04:00
85f3e11ef1 Fix Example Usage in docs 2021-07-28 19:56:12 -04:00
67026809a8 Fix EqualityComparable.__eq__ typing 2021-07-28 19:55:19 -04:00
dd8168f902 Fix a typo within the documentation 2021-07-28 19:54:58 -04:00
96b9a0e09d Add reason kwarg to more methods 2021-07-28 19:54:32 -04:00
c059d43e98 Add Number type (10) to Application Command Option types 2021-07-28 19:53:58 -04:00
b47133dfb2 Add BaseUser.banner for all subclasses to access new banners 2021-07-28 19:41:43 -04:00
23852404ed Fix incorrect typehint in send_message 2021-07-21 02:52:51 -04:00
bc75945088 Add format_dt to utils __all__ 2021-07-21 02:52:06 -04:00
dd5fc656d9 Fix permissions_for for roles 2021-07-21 02:51:46 -04:00
8675a18185 [commands] Remove unused copy import in Cog 2021-07-21 02:48:11 -04:00
a0e5e062c9 Add versionadded to ui.View and ui.Item 2021-07-21 02:47:52 -04:00
48eb981344 Fix Thread.slowmode_delay not updating 2021-07-21 02:47:15 -04:00
feed302269 Fix documentation note for interaction_check 2021-07-21 02:46:52 -04:00
262a50196d fix typo in ephemeral function definition 2021-07-21 02:46:39 -04:00
15eb3d2e5d Remove afk parameter from change_presence 2021-07-21 02:45:57 -04:00
0faf4c8e2b Stricter type hint in releaselevel 2021-07-21 02:45:21 -04:00
5b8be9a772 Add PartialMessage to list of allowed message reference types 2021-07-21 02:45:01 -04:00
834e23dc00 Fix type annotations for purge's limit param on Thread/TextChannel
Optional was missing.
2021-07-21 02:44:27 -04:00
26e68b31ef [commands] fix incorrect typings in ThreadConverter 2021-07-21 02:43:37 -04:00
f14e584304 Sync Guild.features to documentation 2021-07-10 03:13:14 -04:00
e2624b9a31 [commands] Fix (Partial)MessageConverter to work with thread messages 2021-07-10 03:11:34 -04:00
f153154b7a Undocument Item.width
It doesn't serve much of a purpose to users
2021-07-09 09:14:01 -04:00
1a4e73d599 [commands] Get guild_id from message link for message converters 2021-07-09 09:14:01 -04:00
0aa825557d Re-try requests on 504 error and raise correct error 2021-07-09 04:54:22 -04:00
8fb998b599 Refactor utcfromtimestamp to use fromtimestamp(..., tz=utc) 2021-07-09 04:20:45 -04:00
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
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
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
8df35c83a9 Remove extraneous dict assignment from view store 2021-07-07 20:19:17 -04:00
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
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
99b8ae35ba Change _Overwrite to get dict entries rather than mutate 2021-07-07 20:19:17 -04:00
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
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