Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz d30fea5b0d Add changelog for v1.7.3 2021-06-12 12:28:08 -04:00
Rapptz f27e2e073f Fix crash involving stickers 2021-06-12 11:56:51 -04:00
Rapptz 0bc5f276a7 [commands] Change EmojiConverter to use Client.get_emoji 2021-06-12 03:05:28 -04:00
Rapptz 1c640ad72b Lazily create Button custom_ids in decorator interface
The previous code would make two separate instances share the custom_id
which might have been undesirable behaviour
2021-06-12 02:33:11 -04:00
Rapptz f0c76a13d3 Fix guild documentation not showing up for some methods 2021-06-11 05:25:06 -04:00
Rapptz 04573c3c06 Make View timeout parameter keyword-only 2021-06-10 09:06:04 -04:00
Rapptz f6ea03230e Make parameters passed to Reaction.user keyword-only 2021-06-10 08:58:25 -04:00
Rapptz c251c51cb1 Typehint Reaction 2021-06-10 08:58:10 -04:00
Rapptz 9181bf046b Rename Reaction.custom_emoji to Reaction.is_custom_emoji
This legacy attribute was apparently never changed to be consistent
with the rest of the library
2021-06-10 08:50:50 -04:00
Rapptz fc66c5b92d Fix some webhook related type checker errors 2021-06-10 07:57:41 -04:00
Rapptz 0dd4c4c08c Don't use class attribute syntax for Guild typings 2021-06-10 07:50:35 -04:00
Rapptz 11e23c534a Close ClientSession after closing websocket connections 2021-06-10 07:32:05 -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 2247fbb23a [types] Use proper type for Guild.threads 2021-06-08 09:28:29 -04:00
Rapptz c693945a46 [types] Split PartialVoiceState for proper gateway type 2021-06-08 09:27:55 -04:00
Rapptz 746da7d54c Add Thread.permissions_for helper function 2021-06-08 07:29:17 -04:00
Rapptz 1152f67efc Allow pins events to work with threads 2021-06-08 07:29:17 -04:00
Rapptz 5ae7940ec8 Add message purging functions to Thread 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 9adf94e6b1 Add ThreadMember.thread 2021-06-08 07:29:17 -04:00
Rapptz 92ee2cd598 Add support for thread parameter in Webhook.send 2021-06-08 07:29:15 -04:00
Rapptz 4b51e3e253 Add TextChannel.active_threads 2021-06-08 07:26:22 -04:00
Rapptz d0d2d7ea62 Clarify actions that require manage_threads permission 2021-06-08 07:26:22 -04:00
Rapptz 5a72391b72 Add thread related permissions 2021-06-08 07:26:22 -04:00
Rapptz 3a421a3eb9 Add TextChannel.get_thread shortcut helper 2021-06-08 07:26:22 -04:00
Rapptz b2176dc0ef Change how threads are created
Instead of start_public_thread and start_private_thread they'll now be
one method.

I might revert this if starting a public thread without a message never
ends up happening.
2021-06-08 07:26:22 -04:00
Rapptz 40127eb7b5 Fix import error with threads archived iterator 2021-06-08 07:26:22 -04:00
Rapptz b9d8d3872e Add __repr__ for the thread classes 2021-06-08 07:26:22 -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 a16f54afdb Replace Ellipsis with utils.MISSING 2021-06-08 07:26:22 -04:00
Rapptz a09f89cedf Fix partial thread members 2021-06-08 07:26:22 -04:00
Rapptz c6d09a8bfa Add Thread.is_news() 2021-06-08 07:26:22 -04:00
Rapptz 72c66a1706 Bump gateway API to v9 2021-06-08 07:26:22 -04:00
Rapptz 4a4e73ec14 Update thread typings and payloads to match documentation 2021-06-08 07:26:18 -04:00
Rapptz ac95b8b85b Allow Message.channel to be a thread 2021-06-08 07:25:40 -04:00
Rapptz 51cc7622a6 TextChannel.archived_threads is not a coroutine 2021-06-08 07:25:40 -04:00
Rapptz cb9a506686 Fix typo with archived_threads iterator leading to AttributeError 2021-06-08 07:25:40 -04:00
Rapptz 7c6724fdd7 Fix typo in start_private_thread
This also renames archive_threads to archived_threads
2021-06-08 07:25:40 -04:00
Rapptz 9d3962aa7a [types] Fix some minor ordering mishap on MessageType 2021-06-08 07:25:40 -04:00
Rapptz c1ce3b949f Implement remaining HTTP endpoints on threads
I'm not sure if I missed any -- but this is the entire documented set
so far.
2021-06-08 07:25:30 -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
Rapptz 6c79714b42 [types] Add support thread API typings 2021-06-08 07:13:19 -04:00
Rapptz 5c2945bcd4 Fix AttributeError in is_nsfw() methods 2021-06-08 05:37:10 -04:00
Rapptz 81e9d70b7b Add pre-conditions to avoid on_timeout being called after stop()
Apparently the cancellation request for a TimerHandle doesn't
necessarily have to be honoured despite large periods of time passing
2021-06-06 07:05:17 -04:00
Rapptz 876b1e0f3e Add View.on_error callback for swallowed exceptions 2021-06-05 08:22:44 -04:00
Rapptz 27556ea0a2 Fix DM channel permissions not having read_messages 2021-06-05 02:53:30 -04:00
Rapptz dbd9ed2c41 Add View.is_dispatching to detect whether a view has been added 2021-06-04 04:30:19 -04:00
Rapptz 4b1059579e Fix NameError in missing _EmojiTag import 2021-06-02 06:00:39 -04:00
Rapptz 47f2d04940 Allow passing Emoji in components 2021-06-02 05:30:42 -04:00
Rapptz be5f4ae4ab Properly type hint attributes in Emoji 2021-06-02 05:30:42 -04:00
Rapptz bac6c2fc7b [commands] Unwrap functions to get their module and globalns
Fixes #7002
2021-06-01 08:51:35 -04:00
Rapptz 78275023cc Add Client.persistent_views to get all persistent views 2021-05-31 23:15:12 -04:00
Rapptz 7c40e83d10 Ensure views added to Client.add_view are persistent views 2021-05-31 23:08:08 -04:00
Rapptz c811932ca7 Don't mark URL buttons as dispatchable 2021-05-31 22:57:44 -04:00
Rapptz 09f0ed1fba Mention that rows are explicitly 0 indexed. 2021-05-31 20:19:08 -04:00
Rapptz 89d24cb0bc Add interaction enums to __all__ 2021-05-31 05:56:50 -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
Rapptz 4a3491cc0a Check for view finished state before resuming listening on edit 2021-05-31 00:18:06 -04:00
Rapptz 8dafe4f544 Add support for editing in views in PartialMessage 2021-05-31 00:17:35 -04:00
Rapptz 2ed3e049e1 Add View.is_finished() to query listening state 2021-05-31 00:12:08 -04:00
Rapptz 61a189c217 Sync views in InteractionResponse.edit_message 2021-05-31 00:09:15 -04:00
Rapptz 90a28d48d5 Fix potential KeyError when removing views 2021-05-30 12:29:46 -04:00
Rapptz 7b1c57ed60 Add support for interaction followups 2021-05-30 11:25:15 -04:00
Rapptz 2ebd5315f9 Add support for sending and editing views in Webhook 2021-05-30 11:25:00 -04:00
Rapptz c9cdb47338 Add __repr__ for View 2021-05-30 11:24:23 -04:00
Rapptz db58e628ba Allow Webhook.send to send ephemeral messages
This is only available for application webhooks
2021-05-30 10:29:29 -04:00
Rapptz 267fad9180 Add WebhookType.application 2021-05-30 10:02:58 -04:00
Rapptz c6f3ed1af4 Allow sending View with Interaction.response.send_message
This also allows for ephemeral views and listening to said views
2021-05-30 06:10:58 -04:00
Rapptz 1b15772671 Allow assigning Select.options to refresh the select menu 2021-05-30 03:20:29 -04:00
Rapptz 02c317d9a4 Fix Message.edit typings to take View parameters 2021-05-30 00:00:24 -04:00
Rapptz 7bd1211b36 Rework item grouping behaviour to take into consideration weights
This also renames `group` into `row`
2021-05-29 23:58:37 -04:00
Rapptz 695662416a Fix Messageable.send overload to take view parameters 2021-05-29 08:01:37 -04:00
Rapptz c21d12be5e Check future state before setting result in View 2021-05-29 05:52:05 -04:00
Rapptz d78e5d979d Refactor and type hint invites 2021-05-29 05:49:19 -04:00
Rapptz 5a68d3a561 Typehint AllowedMentions 2021-05-29 04:26:21 -04:00
Rapptz 5a9cbc967b Typehint mixins 2021-05-29 02:44:31 -04:00
Rapptz 794327cdb4 Fix type errors with required keys in the integration types 2021-05-29 01:09:07 -04:00
Rapptz 1ae40a11b7 Fix some type errors in StreamIntegration.edit 2021-05-29 00:54:31 -04:00
Rapptz 06743dd434 Make StreamIntegration.role a property rather than a strong reference 2021-05-29 00:50:56 -04:00
Rapptz 732c5384fd Allow registering a View for persistent long term dispatching 2021-05-29 00:44:08 -04:00
Rapptz 7e1f8bf1b4 Typehint Sticker 2021-05-29 00:19:11 -04:00
Rapptz f321efd4de Default SelectOption.value to the label if not given 2021-05-28 09:43:15 -04:00
Rapptz b84c199c70 Allow constructing SelectOption.emoji from a string as well 2021-05-28 09:40:49 -04:00
Rapptz c475218112 Typehint Role and RoleTags 2021-05-28 08:54:45 -04:00
Rapptz 35bef7af38 Fix Role.is_assignable() computing Guild.me twice 2021-05-28 08:41:45 -04:00
Rapptz f4fe247813 Remove __slots__ from View 2021-05-28 08:39:34 -04:00
Rapptz ef9f61a933 Add support for select components 2021-05-28 05:34:21 -04:00
Rapptz 6874aa73c4 Add PartialEmoji.from_str helper 2021-05-28 05:34:21 -04:00
Rapptz ff36aedf7b Add support for reading SelectMenu components from messages 2021-05-28 05:34:21 -04:00
Rapptz 8bd17ede47 Move ActionRow to its own separate type split from Component 2021-05-28 02:11:10 -04:00
Rapptz aeb2cfb573 Add private get_slots utility to get slots through MRO 2021-05-28 01:56:48 -04:00
Rapptz 263f45d05b Fix View.wait not returning when it times out
This also makes it so it returns the reason why the wait finished.
2021-05-28 00:53:28 -04:00
Rapptz 3f60997630 Add a timeout callback for detecting when a View times out 2021-05-28 00:53:28 -04:00
Rapptz 97f308d219 Add View.remove_item and View.clear_items 2021-05-28 00:53:28 -04:00
Rapptz 3453992ce6 Add View.interaction_check for interaction pre-conditions 2021-05-28 00:53:28 -04:00
Rapptz 65db814d4a Add a way to wait for a view to finish its interactions 2021-05-27 23:31:48 -04:00
Rapptz 1954861668 Add warning for comparing with role positioning 2021-05-27 21:11:17 -04:00
Rapptz fc64ffdabd Allow passing multiple embeds in InteractionResponse.edit_message 2021-05-27 21:07:28 -04:00
Rapptz fbafe20e51 Allow View to be instantiated without subclassing 2021-05-27 01:41:18 -04:00