Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz 61577677cd Fix Guild.fetch_members limit parameter typing to be Optional 2022-03-16 00:39:05 -04:00
Rapptz caf1c6eae4 Fix overload in StoreChannel 2022-03-16 00:13:39 -04:00
Rapptz 446c502995 Change lowercase detection to work with CJK languages
str.islower() does not properly work with characters in the Lo category
so CJK languages fail the check.

Fix #7698
2022-03-15 23:37:54 -04:00
Rapptz 26457b6d50 Remove automatic defer behaviour from View and Modal
This doesn't make as much sense anymore now that
InteractionResponse.edit_message exists.
2022-03-15 10:30:19 -04:00
Rapptz 8ced1143e3 Change missing application ID error to be more descriptive 2022-03-15 07:22:44 -04:00
Rapptz 27dd986858 Forbid Choice annotations being used with autocomplete parameters
Since the Choice are synthetic, the library doesn't have a
pre-populated list of choices to know what to use as the resulting
value.
2022-03-15 07:09:41 -04:00
Rapptz 698d1e12a1 Add CommandTree.error decorator to set on_error dynamically 2022-03-15 06:57:25 -04:00
Rapptz 2bf612cd67 Fix Client.close erroring if done before proper async initialisation 2022-03-15 06:51:19 -04:00
Rapptz 20aa6f866d Fix CommandTree removal and getter overloads 2022-03-15 03:34:04 -04:00
Rapptz f015b59e43 Add CommandTree.walk_commands and Group.walk_commands 2022-03-15 03:24:20 -04:00
Rapptz 5bc085ebab Properly set root parent before copying a command's binding 2022-03-15 03:24:20 -04:00
Rapptz aa006f345a Add more special methods to Namespace for ease of use.
* __getattr__ would allow it to no longer AttributeError while
  simultaneously letting linters and type checkers understand that
  this is a bag of dynamic attributes.
* __contains__ allows checking for the existence of an attribute
* __getitem__ allows accessing a value even if its name is not a valid
  Python identifier.
2022-03-14 22:49:47 -04:00
Rapptz f0a47f5a40 Allow single element Literal in app commands
Fix #7690
2022-03-14 21:17:00 -04:00
Rapptz 934ab4151a Mark state refresh methods as private with an underscore
People kept wondering what it is or what it does.
2022-03-14 07:50:25 -04:00
Rapptz bc70ec5cfd Change persistent view example to use new setup_hook 2022-03-14 06:12:58 -04:00
Rapptz c95c163266 Fix background task examples 2022-03-14 06:08:54 -04:00
Rapptz 9b77331603 Change loop sentinel to provide a more descriptive error message
This way people don't think it's a bug. I imagine some people won't
read it, but at least when you point it out they might get it.
2022-03-14 05:52:35 -04:00
Rapptz aa18e573c3 Mark MISSING as hashable to allow it to be used in dataclasses in 3.11 2022-03-14 05:45:58 -04:00
Rapptz abcec5da9d [tasks] Use the local timezone when comparing for the start time
Fix #7676
2022-03-14 04:54:56 -04:00
Rapptz a4676804ec Show inherited members in InteractionMessage 2022-03-14 02:21:05 -04:00
Rapptz 2da6415008 Add more tests for JST regression case 2022-03-14 01:07:49 -04:00
Rapptz c6ab67420e Remove Embed.Empty in favour of None 2022-03-14 00:52:55 -04:00
Rapptz 603681940f [tasks] Only correct for clock drift if an explicit time is given 2022-03-13 22:51:10 -04:00
Rapptz f2586e9fe7 [tasks] Handle imaginary or ambiguous times due to DST transitions 2022-03-13 22:45:18 -04:00
Rapptz f63070c071 Move migrating to v1 into a new separate file 2022-03-13 21:55:07 -04:00
Rapptz a339e01047 [tasks] Compare using full datetime rather than sole time
Comparisons using just the time object without an attached date
are pretty buggy and incomplete -- comparisons only make sense when
given a particular instant of time.

Ref: #7676
2022-03-13 20:45:05 -04:00
Rapptz 58ad146a4e Remove window re-assignment in gateway rate limiter
This was a hold over from the old cooldown implementation.
2022-03-13 12:09:07 -04:00
Rapptz c0890bfbc1 Remove unused View._expires_at private function 2022-03-13 11:50:09 -04:00
Rapptz 64c6639f4b [tasks] Handle loop functions running multiple times due to clock drift 2022-03-13 11:36:00 -04:00
Rapptz 9c61e10a55 Move all async object creation to a proper initialisation point
This should make it so no object is created with another loop
2022-03-13 08:33:25 -04:00
Rapptz 8d4f08a5e7 Fix AutoShardedClient to work with the new asyncio loop machinery
Fix #7675
2022-03-13 08:05:44 -04:00
Rapptz 6a43d60acf [tasks] Refactor tasks to not store a time index state
It's better to recompute it every time rather than suffer from
maintaining the extra state.
2022-03-13 06:20:44 -04:00
Rapptz c02a3c0bb2 Add asynchronous context manager support for Client 2022-03-13 05:04:55 -04:00
Rapptz 5e9097179b Add CommandTree.copy_global_to method for quick development 2022-03-12 21:32:35 -05:00
Rapptz 3718192b9c Raise a TypeError if a non-View is passed to Webhook.send 2022-03-12 21:01:07 -05:00
Rapptz 42beec9fa9 Fix bug when app commands would not have a module attribute set on copy 2022-03-12 20:55:08 -05:00
Rapptz d63fd578c2 Change TextChannel annotation channel_types to include news channels 2022-03-12 20:51:32 -05:00
Rapptz 6def5c9131 Allow specifying float default values for app commands 2022-03-12 09:41:28 -05:00
Rapptz 1d1bba1f90 Support app_commands.guilds decorator for context menu commands 2022-03-12 09:28:46 -05:00
Rapptz 0ef369c0fa [commands] Automatically unload top level app commands in extensions 2022-03-12 09:24:26 -05:00
Rapptz a672455ca9 Fix some context menu commands not being registered in guild contexts
This happened when there weren't any application commands due to a typo
stemming from a copy paste error.

Fixes #7650
2022-03-12 08:39:57 -05:00
Rapptz d68f2db7cb [commands] Always respect guild IDs passed to cog adding and removal
Fixes #7657
2022-03-12 06:58:55 -05:00
Rapptz d921a03911 Fix bug where Guild.member_count would clear during update events
Fix #7656
2022-03-12 04:19:52 -05:00
Rapptz 9fd63ad7f3 Fix Optional type hints not respecting explicitly set defaults 2022-03-12 02:03:17 -05:00
Rapptz 9dea6caf20 Ensure cog app commands is a list rather than a dict
There was a remnant of it being a dict in the metaclass.
2022-03-11 21:30:49 -05:00
Rapptz 333849e5a3 Unbind bound methods passed to Command constructor
Fixes #7600
2022-03-11 10:26:16 -05:00
Rapptz 140a827190 Fix default guilds for commands not being respected
Pesky little typo

Fix #7641
2022-03-11 08:33:37 -05:00
Rapptz 740c156cd8 Allow Optional transformers to work at runtime 2022-03-11 08:06:11 -05:00
Rapptz bbf7a7981b Ensure all choices are the same type as the parameter type
Fixes #7625
2022-03-11 07:29:11 -05:00
Rapptz 377561844d Raise an error if a child command has default guilds set 2022-03-11 07:18:34 -05:00
Rapptz f54c4ca54e Validate application command names 2022-03-11 06:40:28 -05:00
Rapptz f4ca36ec5a Add Member.timeout helper method 2022-03-10 21:32:33 -05:00
Rapptz 26c6b4d449 Use new differentiator for guild and global commands
Fixes #7602
2022-03-10 20:10:49 -05:00
Rapptz 02fcc814e1 Allow passing guild_ids in constructors of Command and Group
Fixes #7626
2022-03-10 19:31:27 -05:00
Rapptz f6453d9439 Fix free functions being passed a binding in autocomplete callbacks
Fix #7624
2022-03-10 19:26:00 -05:00
Rapptz 4edfcd165d Version bump aiohttp and PyNaCl
Fixes #7614
2022-03-10 06:03:59 -05:00
Rapptz 5ff657dbec Add missing attributes in PartialInviteGuild 2022-03-10 05:39:03 -05:00
Rapptz d210f799ee [commands] Fix cog eject behaviour with application commands
This was using the old attribute I forgot to change.
2022-03-10 05:33:54 -05:00
Rapptz 71586836e1 Add Guild.vanity_url helper property 2022-03-10 05:06:02 -05:00
Rapptz a6ae7ec196 Raise error if two trees are registered to the same connection state 2022-03-09 20:35:07 -05:00
Rapptz 446bfa78b0 [commands] Allow Cog and app_commands interopability
This changeset allows app commands defined inside Cog to work as
expected. Likewise, by deriving app_commands.Group and Cog you can
make the cog function as a top level command on Discord.
2022-03-09 20:26:54 -05:00
Rapptz 5741ad9368 Change default guild IDs attribute to persist on copy 2022-03-09 20:26:54 -05:00
Rapptz 0d126c594c Use descriptor protocol to obtain attribute name instead of a dict 2022-03-09 20:26:54 -05:00
Rapptz 303d33bb08 Support Group with app_commands.guilds decorator 2022-03-09 20:26:54 -05:00
Rapptz 9d27855755 Update attributes of instantiated Group to point to the Command copy 2022-03-09 20:26:54 -05:00
Rapptz 56e0c1b3d7 Fix typo in applications.commands scope 2022-03-09 20:26:53 -05:00
Rapptz 3d74da8d70 Add missing app_commands decorators to documentation 2022-03-08 01:22:43 -05:00
Rapptz 0c690bc949 Fix audio not sending
Fixes #7531
2022-03-08 01:18:32 -05:00
Rapptz 25b4bc277b Add app_commands.guilds to set the guilds of a command in another way
This is mostly preparation for interopability with commands.Cog as this
would allow authors to specify the guilds for their cog defined
commands.
2022-03-08 00:48:24 -05:00
Rapptz 5fb1b933cf Add Group.commands property 2022-03-08 00:07:39 -05:00
Rapptz 987e27dfce Revert all Guild.chunk changes
This method should *not* return a list of members due to the way it is
used internally.
2022-03-07 22:14:38 -05:00
Rapptz e6a87e0782 Add support for adding app commands locally to many guilds
This affects the context_menu and command decorators as well. Removing
and syncing do not support multiple guild IDs.
2022-03-07 21:52:58 -05:00
Rapptz 8213603822 Change default oauth_url scopes to include application.commands 2022-03-07 18:35:42 -05:00
Rapptz ba2763a4a1 Add private hook for changing the API version
This is mainly a temporary, undocumented, stop gap for bots that are
screwed over from waiting for Discord to grant them the message content
intent.
2022-03-07 18:23:12 -05:00
Rapptz fc4e5d6237 Fix type checker error in discord.__main__ 2022-03-07 18:10:40 -05:00
Rapptz ac0e4fabb8 Fix type checker error in Guild.chunk 2022-03-07 18:09:23 -05:00
Rapptz 4b2c2b231d Fix type checker errors in Connectable and Messageable 2022-03-07 18:05:43 -05:00
Rapptz 1f8687505f Fix InteractionResponse.edit_message not working with modal submits 2022-03-07 17:53:01 -05:00
Rapptz e8506f39b3 Add discord.app_commands to Pyright configuration
This also updates the type ignore settings.
2022-03-07 17:51:48 -05:00
Rapptz 0330282c5f Create a default TCPConnector with no limit
The default implementation only allows for 100 concurrent connections
and during heavy sharding (>=100 shards) this can end up freezing
shards.
2022-03-07 01:19:37 -05:00
Rapptz 625c416f18 [commands] Fix command parameter handling in HelpCommand 2022-03-06 01:39:43 -05:00
Rapptz fa901afa3a Add replied_user key when no allowed_mentions is passed in 2022-03-05 23:39:06 -05:00
Rapptz c9fc11b0a5 Document inherited members in ui.Modal 2022-03-05 23:17:37 -05:00
Rapptz 06291d860c Change enum members in Locale to be snake_case
Not even sure how this slipped through.
2022-03-05 23:17:37 -05:00
Rapptz 82464419ce Fix black reformatting on guild file
Black seems to not properly run on 2nd commits on PRs so this slid
through.
2022-03-05 22:14:58 -05:00
Rapptz 13e102b6b9 Add default parameter to CommandTree.sync
I'm not sure how I feel about this, since explicitly passing
guild=None seems better.
2022-03-05 22:02:33 -05:00
Rapptz 7ac4f3007b Fix missing type imports in context menu verification 2022-03-05 21:43:14 -05:00
Rapptz 4c8b1f9abd Remove unused imports 2022-03-05 21:40:42 -05:00
Rapptz 5c9605fc1b Fix Message context menus not working 2022-03-05 21:15:49 -05:00
Rapptz 37d55c8ec4 Add TextInput.__str__ special method
Closes #7504
2022-03-05 21:05:46 -05:00
Rapptz f7315573aa Remove generic from Interaction and ConnectionState
This results in poor ergonomics due to the lack of default generics
for the common case. For most users this ends up in a degraded
experience since the type will resolve to Unknown rather than at the
very least a Client.
2022-03-05 05:03:23 -05:00
Rapptz aa74238053 Reorganise documentation for interactions 2022-03-04 21:17:27 -05:00
Rapptz 41f2792ed9 Change Interaction.user to not be Optional
This has potential to be a breaking change and Discord could definitely
royally screw this over in the future. However, as far as I can tell
every interaction has either a User or a Member so this change should
be kosher. I'm unaware of any interaction, even in the future, where
this is not true.

I hope these are not my famous last words.
2022-03-02 02:11:04 -05:00
Rapptz 45dc3d3df9 Rename start_embedded_activities to use_embedded_activities 2022-03-02 01:51:47 -05:00
Rapptz f80f81c395 Add Member.resolved_permissions attribute for interaction members 2022-03-02 01:39:39 -05:00
Rapptz f435d160dd Add Interaction.client property 2022-03-01 08:11:22 -05:00
Rapptz 6110fe5b1c Add fallback overloads for CommandTree 2022-03-01 07:54:14 -05:00
Rapptz 50ef8e8893 Fix NameError when checking for File instances 2022-03-01 07:21:16 -05:00
Rapptz d44328d3ea Remove region from Guild.__slots__
This also fixes up some docstrings
2022-03-01 05:54:26 -05:00
Rapptz bb5ed4947d Add regression test for optional normalisation
Also runs black on the tests file
2022-03-01 05:54:26 -05:00