287 Commits

Author SHA1 Message Date
Lilly Rose Berner
6b1d46a1ea
Set Message.guild from guild_id if unavailable through Message.channel 2021-06-28 19:03:59 -04:00
Rapptz
e96df33ce0 Dispatch thread_join when a thread is updated but not in cache 2021-06-28 18:56:28 -04:00
Rapptz
7dccbace78 Refactor Guild to support type hints
This patch also does the following:

* Sets some parameters to be positional only
* Changes Guild.edit to use the MISSING sentinel
* Changes the various create_channel methods to be type safe
* Changes many parameters from Optional[T] to use MISSING
* Changes Guild.create_role to use MISSING sentinel

This refactor is mostly partial but lays a decent foundation
2021-06-08 10:56:26 -04:00
Rapptz
1152f67efc Allow pins events to work with threads 2021-06-08 07:29:17 -04:00
Rapptz
e13cbf4644 Don't dispatch thread_join on extraneous THREAD_CREATE dispatches 2021-06-08 07:29:17 -04:00
Rapptz
bd369c76ea Parse remaining thread events. 2021-06-08 07:29:17 -04:00
Rapptz
429c5933d9 Add minor parsing for THREAD_LIST_SYNC and THREAD_MEMBER_UPDATE
There's no dispatch for these yet
2021-06-08 07:26:22 -04:00
Rapptz
ac95b8b85b Allow Message.channel to be a thread 2021-06-08 07:25:40 -04:00
Rapptz
68c7c538f5 First pass at preliminary thread support
This is missing a lot of functionality right now, such as two gateway
events and all the HTTP CRUD endpoints.
2021-06-08 07:23:40 -04:00
Nadir Chowdhury
ab6d592f8c
Add support for integration create/update/delete events 2021-06-07 03:28:26 -04:00
Rapptz
78275023cc Add Client.persistent_views to get all persistent views 2021-05-31 23:15:12 -04:00
Rapptz
d0097c4281 Remove view syncing before editing in views
This prevents a potential race condition when a MESSAGE_UPDATE is
received syncing and refreshing the view components causing a desync.
2021-05-31 05:50:40 -04:00
Nadir Chowdhury
9f98a9a87f
Implement StageInstance 2021-05-30 13:51:52 -04:00
Rapptz
ef9f61a933 Add support for select components 2021-05-28 05:34:21 -04:00
Rapptz
98570793e4 Add initial support for buttons and components 2021-05-27 00:53:13 -04:00
Nadir Chowdhury
631a0b1e13
Add support for ApplicationFlags 2021-04-18 20:32:52 -04:00
Steve C
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
apple502j
9f1a96ea9b
Remove fetch_offline_members param for Client 2021-04-14 20:58:49 -04:00
apple502j
dea92a69dc
Remove support for guild subscriptions 2021-04-14 00:47:46 -04:00
Rapptz
9b94fe1ce0 Remove superfluous unused payload parameter 2021-04-11 22:13:48 -04:00
Rapptz
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
Nadir Chowdhury
f1fac96e33
Remove private_channel_(delete/create) events 2021-04-11 15:13:23 -04:00
Rapptz
7d79b4ba55 Remove Member related handling in PRESENCE_UPDATE 2021-04-11 00:57:59 -04:00
Rapptz
d85805ab6d First pass at supporting v8 API 2021-04-11 00:39:13 -04:00
Rapptz
7e3c5f3faf Fix some regressions from create_task change 2021-04-06 07:31:31 -04:00
Rapptz
8cece19b22 Add on_interaction event and Interaction class.
This is the first pass at the functionality. It's currently a bit
incomplete.
2021-04-06 01:11:36 -04:00
Rapptz
1e7f139313 Add support for setting application_id 2021-04-06 01:11:36 -04:00
Nadir Chowdhury
2ff24a27b5
Use asyncio.create_task over asyncio.ensure_future 2021-04-05 20:31:03 -04:00
Rapptz
ff7094ce96 Convert datetimes to aware datetimes with UTC.
Naive datetimes will now be interpreted as local time throughout
the library.
2021-04-04 23:54:08 -04:00
Rapptz
54288879e2 Remove userbot functionality
This has a lot of legacy and cruft so there may be some stuff I've
missed but this first pass is enough to get a clear separation.
2021-04-04 10:15:30 -04:00
Rapptz
9d39b135f4 Modernize code to use f-strings
This also removes the encoding on the top, since Python 3 does it by
default. It also changes some methods to use `yield from`.
2021-04-04 07:03:53 -04:00
Nadir Chowdhury
63ec23bac2
Code optimisations and refactoring via Sourcery 2021-02-24 21:26:51 -05:00
Rapptz
61884dd9ac Use member provided data in typing_start event if not in cache
Apparently Discord had this all along.

ref: #5965, #5983
2021-01-24 05:21:13 -05:00
Nihaal Sangha
69bdc3a184
Change copyright year to present 2021-01-15 05:28:11 -05:00
Rapptz
442962596e Dispatch user updates if the global cache gets stale in update events 2021-01-07 23:57:14 -05:00
Nadir Chowdhury
59c11e71a2
Implement presences for Guild.query_members 2020-12-31 13:50:22 -05:00
Sebastian Law
36292a65ea
remove extraneous assignment 2020-12-22 07:18:32 -05:00
Nadir Chowdhury
6b803acde4
[chore] Remove redundant imports
This also removes the historical patch for NullHandler implemented in bbf1c54, as it has been available since Python 3.1.
2020-11-28 03:16:49 -05:00
Rapptz
f174365d33 Ensure member key is not overwritten by author key in MESSAGE_UPDATE
This also coerces the older message to take the member data from the
newer message so the types are not incompatible.

Fix #5999
2020-11-23 06:02:27 -05:00
Rapptz
7a3a571e0a Don't store a user cache if there's no member intent or cache is off
Without a cache or member intent the user cache can get out of date
with no events to update the underlying user in the member object.

Ref: #6034
2020-11-23 05:24:13 -05:00
Rapptz
431ee8794b Fix error with templates not having access to member cache flags.
This also changes the attribute from having an underscore

Fix #5986
2020-11-21 22:42:59 -05:00
Rapptz
707cb47438 Fix error when querying members from the gateway.
I accidentally made this return True instead of the actual member list
2020-10-19 19:37:16 -04:00
Rapptz
1a6295dffb Allow concurrent calls to guild.chunk()
This allows people who write guild.chunk() calls in highly concurrent
places such as on_message or checks to not spam the gateway with an
actual request and instead waits for the pre-existing request to finish
2020-10-19 02:47:03 -04:00
Florian Spieß
ae65d75f96
Load member from guild_member_update dispatch 2020-10-17 23:19:02 -04:00
Rapptz
61e25cb090 Ensure our own member is never evicted from the cache in any policy. 2020-10-17 23:02:03 -04:00
Rapptz
b07d474bd6 Fix attribute errors when timing out during chunking start-up 2020-10-17 22:02:44 -04:00
Rapptz
bf42cf7232 Add warning if guilds intent is disabled. 2020-09-28 05:39:13 -04:00
Rapptz
1ebb52b139 Guard GUILD_MEMBER_ADD/GUILD_MEMBER_REMOVE from errors
If the guilds intent is disabled all guilds are unavailable. This means
we don't receive a member_count attribute and cannot update it.
2020-09-28 05:12:05 -04:00
Rapptz
28e5b2a5e1 Add Client.intents to query the current intents
Closes #5854
2020-09-26 06:35:41 -04:00
Rapptz
e4d7f44aa5 Make Intent class creation more intuitive 2020-09-24 09:00:54 -04:00