Commit Graph

489 Commits

Author SHA1 Message Date
ac1b9f5628 [commands] Fix lambda converters in non-module contexts.
Not sure why anyone would do this but might as well fix it.
2019-04-13 07:15:54 -04:00
ac2cda1ffc [tasks] set internal task to None after canceling 2019-04-12 20:56:40 -04:00
e46842a7cd [tasks] Add before_loop and after_loop decorators 2019-04-12 04:08:42 -04:00
015404b01c [commands] Add versionadded to dm_only 2019-04-12 03:21:49 -04:00
4513dac7a3 [tasks] Ensure total number of seconds is not less than 0. 2019-04-11 08:21:45 -04:00
10bc939348 [tasks] Rename Loop.run to Loop.start to avoid blocking connotations 2019-04-11 08:19:32 -04:00
b0c7f48caf [tasks] Add a new background helper 'tasks' extension. 2019-04-11 08:04:26 -04:00
ec1b3434a2 [commands] Fix erroneous string in dm_only check 2019-04-11 00:55:32 -04:00
aabbd5a446 [commands] Added dm_only check
Raises PrivateMessageOnly on failure.
2019-04-11 00:02:22 -04:00
50dcdac5ca [commands] Fix references in Bot to actually link.
Exceptions can't seem to link due to a bug in Sphinx.
2019-04-10 05:13:30 -04:00
ef0b2a1092 [commands] Properly name heading for ExtensionError 2019-04-10 00:59:02 -04:00
aeabd0761e [commands] Raise TypeError instead of ClientException in some places
Certain decorators and functions expect coroutines and raise an
exception when this is not met. Change these to raise the appropriate
TypeError since they can't actually be handled by the user gracefully
anyway.
2019-04-07 22:31:05 -04:00
47ab24991f [commands] Remove extraneous or 2019-04-06 22:02:58 -04:00
ee81f0614e [commands] Fix HelpCommand.invoked_with when used in events. 2019-04-06 21:33:21 -04:00
9833ea82e2 Add helpers to escape markdown and mentions from text.
Fixes #1673
2019-04-06 20:14:05 -04:00
743a5a218f [commands] Disallow bot_ or cog_ commands or listeners in cogs. 2019-04-06 19:46:22 -04:00
e4de25eaab [commands] Raise BadArgument in ColourConverter when using from_hsv/rgb
Fixes #2043
2019-04-06 19:29:21 -04:00
24d3a5a48d Only escape characters as necessary in clean_content
Fixes #1885
2019-04-06 19:19:58 -04:00
be227ebcf0 Redesign asset retrieval in the library.
Most assets now return a new class named `Asset`. This allows for the
assets to be consistently saved via a `save` method instead of special
casing for `Attachment`.

`AppInfo` is no longer a namedtuple it is a fully documented dataclass,
as well as having the state attached to it.

Fixes #1997
2019-04-06 19:12:50 -04:00
43b44751af [commands] Fix MinimalHelpCommand opening note signature consistency 2019-03-24 14:46:55 -04:00
e567b59fea [commands] Double underscore some attributes. 2019-03-24 14:33:51 -04:00
8c0c410d0e [commands] Add HelpCommand.invoked_with
This fixes an issue where the context invoked_with does not match the
actual invoked with behaviour (e.g. using Context.send_help).
2019-03-24 14:27:37 -04:00
c96642860c [commands] Add Command.cooldown_after_parsing keyword argument.
This controls the behaviour of cooldown execution order. This does
not change the default behaviour however.
2019-03-22 22:23:07 -04:00
64d749a13f [commands] Ensure handlers are copied even during update.
Fix #2001
2019-03-20 22:38:00 -04:00
c30a366106 Try to consistently use "inherit" vs "derive" in documentation. 2019-03-19 09:23:12 -04:00
d9e54d7dd3 [commands] Redesign extension exception flow.
Instead of raising a whole variety of exceptions, they are now wrapped
into ExtensionError derived classes.

* ExtensionAlreadyLoaded
	* Raised when an extension is already loaded in Bot.load_extension
* ExtensionNotLoaded
	* Raised when an extension is not loaded, e.g. Bot.unload_extension
* NoEntryPointError
	* Raised when an extension does not have a `setup` function.
* ExtensionFailed
	* Raised when an extension's `setup` function fails.
* ExtensionNotFound
	* Raised when an extension's module import fails.
2019-03-19 09:23:11 -04:00
26e9b5bfac [commands] Add Bot.reload_extension for atomic loading.
Also do atomic loading in Bot.load_extension
2019-03-19 09:23:10 -04:00
d221ca5f7d [commands] ColourConverter raises if value is out of range
changes make the `ext.commands.ColourConverter` Converter fail when
user input is outside the acceptable value range 0x000000 - 0xFFFFFF
2019-03-19 09:23:10 -04:00
f507f508a2 Expose Metadata
Added access to:
* `/users/@me/guilds`
* `/guilds/{guild_id}`
* `/guilds/{guild_id}/members/{member_id}`

BREAKING CHANGE:
* `get_user_info` -> `fetch_user_info` to match naming scheme.

Remove useless note

Remove `reverse` and corresponding documentation

Update documentation to reflect #1988

Rename `get_` HTTP functions to `fetch_`

Breaking Changes:
* `get_message` -> `fetch_message`
* `get_invite` -> `fetch_invite`
* `get_user_profile` -> `fetch_user_profile`
* `get_webhook_info` -> `fetch_webhook`
* `get_ban` -> `fetch_ban`

Fix InviteConverter, update migrating.rst

Rename get_message to fetch_message
2019-03-19 09:00:18 -04:00
fb02191b80 Organise documentation 2019-03-19 08:24:42 -04:00
f43690bde8 [commands] Walk through MRO for Cog derived classes.
This should support cog subclasses in a relatively consistent way in
terms of expectations. Hopefully nothing is broken.

Fixes #1950
2019-03-17 22:04:05 -04:00
f26a27dc98 [commands] Make Bot.cogs and Bot.extensions read-only mappings.
This also has the side effect of effectively documenting them for
public use.
2019-03-17 14:53:56 -04:00
66af80511f Fix pagination of huge command help messages (> ~2,000 chars)
Previously, calls to add_line in add_command_formatting of default help
commands would fail if the command's help message would overflow the
current page. This would also result in silent failure as the
RuntimeError raised from add_line is never caught.

This patch adds behavior that adds lines individually should it raise,
which guarantees safe pagination as long as every line is smaller than
the maximum page size, which is highly unlikely.
2019-03-16 23:24:31 -04:00
053e2f5b9a Fix documentation linking issue in Messageables and Context 2019-03-16 09:55:29 -04:00
cc3b6bdd72 [commands] Rename it to Context.send_help for consistency. 2019-03-16 09:37:47 -04:00
ed5fcb320e [commands] Add Context.show_help helper to use the HelpCommand set.
Fixes #1983
2019-03-16 09:33:05 -04:00
3326adf63b [commands] Optimise GroupMixin.get_command for the no space case.
Comes at a 30ns slowdown for the space case, however.
2019-03-16 09:27:59 -04:00
8466250bcc [commands] Assign context inside HelpCommand.prepare_help_command 2019-03-16 09:24:17 -04:00
b728061522 [commands] Add HelpCommand.get_bot_mapping helper. 2019-03-16 09:23:34 -04:00
7a5102ece9 [commands] Return result of send_group_help and send_command_help 2019-03-16 07:33:12 -04:00
b506ee1b8e Change superclass to subclass in some documentation 2019-03-16 05:32:59 -04:00
61f63a9346 [commands] Add back dm_help tribool for the provided HelpCommands
Also add a dm_help_threshold integer to control the length.
2019-03-16 03:50:30 -04:00
25acad5de3 [commands] Add commands.Paginator.__len__ 2019-03-16 03:38:51 -04:00
3527203e07 [commands] Redesign HelpFormatter into HelpCommand
Part of #1938
2019-03-15 05:54:23 -04:00
27c6d2c923 [commands] Add Cog.description to get the clean docstring. 2019-03-14 11:42:09 -04:00
c4a21cc1d4 [commands] Add Cog.qualified_name to query the specified cog name. 2019-03-13 23:43:29 -04:00
0513ea1f53 [commands] Properly handle typing.Optional as last positional parameter 2019-03-13 10:05:08 -05:00
e1d9f8f59f [commands] Support staticmethod listeners and disallow them in commands 2019-03-12 11:54:45 -04:00
8a153bfaad [commands] Refactor quoted_word free function to a StringView method.
Technically a breaking change, however this interface was not
documented or guaranteed to exist.
2019-03-12 05:37:34 -04:00
560783c3d2 [commands] Separate view parsing errors from BadArgument.
This causes them to be raised from a new exception named
ArgumentParsingError with 3 children for ease with i18n. This is
technically a breaking change since it no longer derives from
BadArgument, though catching UserInputError will prevent this change
from affecting the user.
2019-03-12 05:27:34 -04:00