Commit Graph

206 Commits

Author SHA1 Message Date
4aafa39e8c Update thread permissions
Discord has renamed / repurposed "Use Public Threads" and "Use Private
Threads", as well as added a new permission "Send Messages in Threads".

For more information, see:
  https://github.com/discord/discord-api-docs/pull/3672
2021-08-26 15:53:21 -04:00
dd7d4b8e7f Use a thread values view when constructing TextChannel.threads
Avoids an accidental O(n^2) situation.
2021-08-25 20:42:21 -04:00
490bbffc93 Remove in-place edits and return fresh instances instead
Fixes #4098
2021-08-23 23:46:50 -04:00
ae01a96bef Add missing type: ignore and missing typehint to channel.py 2021-08-23 21:03:56 -04:00
489e5f3288 Use channel default auto archive duration
Currently creating a new thread uses a default auto archive duration of
1440 minutes, or 1 day.

Rather than prescribing our own default, we can use the default auto
archive duration that is set on the channel. This ensures that newly
created threads will respect the default auto archive duration as
prescribed by the user.
2021-08-18 05:12:40 -04:00
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
la
8ac5cdc314 Fix Guild.fetch_channel not working for threads 2021-08-18 00:45:45 -04:00
6b6bcb92e6 Fix missing or broken versionadded in docstrings
This also documents BadFlagArgument.flag
2021-08-18 00:45:02 -04:00
1e17b7fcea Rename start_thread to create_thread for consistency 2021-08-12 00:30:50 -04:00
fda543c844 Fix incorrect indent 2021-08-11 06:25:22 -04:00
dc9c224b54 Undo coercion of partial DMChannel to PartialMessageable 2021-08-10 22:10:45 -04:00
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
58ca9e9932 Add TextChannel.default_auto_archive_duration 2021-08-02 04:36:02 -04:00
f72350199d Fix typo in TextChannel.start_thread 2021-07-31 22:55:32 -04:00
dac0267e28 Allow creating a public thread without a starter message 2021-07-28 23:50:02 -04:00
51b02f2568 Change type to be compatible with the overwrites property 2021-07-28 19:59:38 -04:00
96b9a0e09d Add reason kwarg to more methods 2021-07-28 19:54:32 -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
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
d1dc41ec2f Fix Client.fetch_channel not returning Thread 2021-07-03 21:35:31 -04:00
8b4dd34328 Document TextChannel.start_thread return type 2021-07-03 11:52:20 -04:00
62dad0f7bf Fix potential None access in various StageChannel properties 2021-06-30 01:31:57 -04:00
ea1d423904 Check for None in VocalGuildChannel.voice_states 2021-06-29 23:16:39 -04:00
2beee8be14 Type hint channel.py 2021-06-29 03:37:52 -04:00
b59ec318c0 Fix Category.create_x_channel raising without overwrites 2021-06-28 00:00:51 -04:00
233d10649c [docs] Update Sphinx and Fix various references
Co-Authored-By: Riley Shaw <30989490+ShineyDev@users.noreply.github.com>
2021-06-27 23:43:49 -04:00
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
4b51e3e253 Add TextChannel.active_threads 2021-06-08 07:26:22 -04:00
d0d2d7ea62 Clarify actions that require manage_threads permission 2021-06-08 07:26:22 -04:00
3a421a3eb9 Add TextChannel.get_thread shortcut helper 2021-06-08 07:26:22 -04:00
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
51cc7622a6 TextChannel.archived_threads is not a coroutine 2021-06-08 07:25:40 -04:00
7c6724fdd7 Fix typo in start_private_thread
This also renames archive_threads to archived_threads
2021-06-08 07:25:40 -04:00
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
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
5c2945bcd4 Fix AttributeError in is_nsfw() methods 2021-06-08 05:37:10 -04:00
27556ea0a2 Fix DM channel permissions not having read_messages 2021-06-05 02:53:30 -04:00
9f98a9a87f Implement StageInstance 2021-05-30 13:51:52 -04:00
757cfad38f Type up **kwargs of various methods 2021-05-10 20:24:48 -04:00
b82a0dc6fd [docs] remove mentions of bot only usability 2021-05-04 07:21:59 -04:00
1d7f387122 [docs] stage_channels doc typo 2021-04-21 23:18:49 -04:00
304229071f Add VoiceChannel.video_quality_mode 2021-04-17 08:10:41 -04:00
9eaf1e85e4 Rewrite Asset design
This is a breaking change.

This does the following transformations, assuming `asset` represents
an asset type.

Object.is_asset_animated() => Object.asset.is_animated()
Object.asset => Object.asset.key
Object.asset_url => Object.asset_url
Object.asset_url_as => Object.asset.replace(...)

Since the asset type now requires a key (or hash, if you will),
Emoji had to be flattened similar to how Attachment was done since
these assets are keyed solely ID.

Emoji.url (Asset) => Emoji.url (str)
Emoji.url_as => removed
Emoji.url.read => Emoji.read
Emoji.url.save => Emoji.save

This transformation was also done to PartialEmoji.
2021-04-16 11:27:23 -04:00
30310b9ab6 Add NSFW for Guilds 2021-04-14 00:48:51 -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
99fc950510 Use f-strings in more places that were missed. 2021-04-08 06:02:47 -04:00
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
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