Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz e77dec85e9 Fix cleanup code on Linux not working properly. 2019-04-09 00:56:36 -04:00
Rapptz dcdcf1adac Stop the event loop if it's running during cleanup.
Also handle the coroutine directly instead of using run_until_complete
2019-04-09 00:14:42 -04:00
Rapptz 67ec59caea Fix issue with speaking state causing an error. 2019-04-08 23:08:43 -04:00
Rapptz d37839f38a Update classifier in setup.py 2019-04-08 18:54:40 -04:00
Rapptz 4a4db1a02c Version bump to v1.0.0 2019-04-08 18:38:51 -04:00
Rapptz 3e2e6ad502 Update Japanese translation files. 2019-04-08 18:38:10 -04:00
Rapptz 51c64a3b73 Fix documentation so Sphinx can build semi-cleanly. 2019-04-08 18:17:15 -04:00
Rapptz bb79f2ae81 Bump PyNaCl to 1.3.0 2019-04-08 17:51:16 -04:00
Rapptz 04262b9371 Wording nit, library -> function in load_opus 2019-04-08 17:51:15 -04:00
Rapptz 0ddc6867e9 Change all IntEnum to Enum
A testament to how many 3.5 users there are.
2019-04-08 17:51:14 -04:00
Rapptz 1da624a8b5 Remove manual documentation for AppInfo 2019-04-08 17:27:31 -04:00
Rapptz bb5aaf2ab3 Missing a word in Attachment.save 2019-04-08 17:19:11 -04:00
Rapptz 61ee88b0fc Fix oversight where on_disconnect did not get called on WS termination. 2019-04-08 07:45:05 -04:00
Rapptz f8999b63ae Fix long-standing issue with user updates not dispatching properly.
This fix is long coming. For a long time due to the addition of a
global user cache, the on_member_update event would only have the
updated user in the very first dispatch due to a quirk in the reference
only being updated once.

In order to fix this issue two things had to change:

1. There had to be a new event, `on_user_update` to complement
   the equivalent member event.
2. Unnecessary copies of User had to be removed to compensate for the
   performance hit from the diffing.

While doing these two fixes I also re-evaluated some more unnecessary
copies done during the PRESENCE_UPDATE to add member case while
fetch_offline_members=False is set or due to chunking issues. The
number of copies was brought down from 2 to 1, discounting the original
Member creation. Unsure on the benefits of this one, however.

N.B: this doesn't change the pre-existing behaviour of on_member_update
2019-04-08 07:45:04 -04:00
Rapptz 1a9726087a GUILD_MEMBER_UPDATE no longer does actual user updates.
This had been delegated to PRESENCE_UPDATE a long time ago,
unfortunately.
2019-04-08 06:34:28 -04:00
Rapptz c9fd092476 Don't use an enum when unnecessary in Member._client_status 2019-04-08 04:06:01 -04:00
Rapptz c904e4f25b Add a note to load_opus that it's auto loaded on Windows. 2019-04-08 02:34:26 -04:00
Rapptz 1243298b34 Add some version guarantees to the documentation. 2019-04-08 02:18:48 -04:00
Rapptz 72b6152e96 Client.event raises TypeError instead of ClientException. 2019-04-07 22:33:38 -04:00
Rapptz 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
Rapptz 84c1eac62a Don't raise an exception during the signal handlers. 2019-04-07 16:10:44 -04:00
Rapptz 7b95611e62 Forgot to escape backticks. 2019-04-07 00:46:15 -04:00
Rapptz 4d06879669 Add ignore_links and as_needed options to utils.escape_markdown.
This allows for URLs to be left alone since they can include markdown
characters and allows for total escaping of all markdown characters
by default to prevent some form of data manipulation.
2019-04-07 00:24:34 -04:00
Rapptz d68af294a2 Fix regex substitution in utils.escape_mentions 2019-04-06 23:02:49 -04:00
Rapptz 47ab24991f [commands] Remove extraneous or 2019-04-06 22:02:58 -04:00
Rapptz 79a8249bc7 Add note about escape_markdown in Message.clean_content
Fix #1911
2019-04-06 21:50:56 -04:00
Rapptz ee81f0614e [commands] Fix HelpCommand.invoked_with when used in events. 2019-04-06 21:33:21 -04:00
Rapptz 239d430539 Simplify bot loop cleanup routine.
Attempted solution for #2040
2019-04-06 21:29:57 -04:00
Rapptz 7d385b23a1 Fix copy paste error in ClientUser.edit_settings 2019-04-06 20:19:16 -04:00
Rapptz 9248ff306c Use explicit __eq__ call to be consistent with other methods. 2019-04-06 20:18:10 -04:00
Rapptz 7c5a4b67d7 Fix Attachment.save wording nit. 2019-04-06 20:17:12 -04:00
Rapptz 9833ea82e2 Add helpers to escape markdown and mentions from text.
Fixes #1673
2019-04-06 20:14:05 -04:00
Rapptz 743a5a218f [commands] Disallow bot_ or cog_ commands or listeners in cogs. 2019-04-06 19:46:22 -04:00
Rapptz 79183846dc Make abc.GuildChannel.overwrites return a dictionary
Fix #2016
2019-04-06 19:33:31 -04:00
Rapptz e4de25eaab [commands] Raise BadArgument in ColourConverter when using from_hsv/rgb
Fixes #2043
2019-04-06 19:29:21 -04:00
Rapptz dea3ba5eb7 Propagate Cloudflare 429 HTML text. 2019-03-31 05:44:00 -04:00
Rapptz 43b44751af [commands] Fix MinimalHelpCommand opening note signature consistency 2019-03-24 14:46:55 -04:00
Rapptz 548b9d5693 Double underscore HTTPClient's internal session. 2019-03-24 14:45:18 -04:00
Rapptz e567b59fea [commands] Double underscore some attributes. 2019-03-24 14:33:51 -04:00
Rapptz 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
Rapptz b41a29a889 Get cached message in reverse order for improved performance.
Most embed-only edits happen for the newest message.
2019-03-23 00:57:50 -04:00
Rapptz 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
Rapptz d48a424f6f Fix mistake in documentation. 2019-03-20 23:29:04 -04:00
Rapptz 72b6b67cf4 Add back PartialEmoji.__hash__ that was deleted due to __eq__. 2019-03-20 22:54:53 -04:00
Rapptz 64d749a13f [commands] Ensure handlers are copied even during update.
Fix #2001
2019-03-20 22:38:00 -04:00
Rapptz 5fe1ab279a Drop websockets version due to issues. 2019-03-20 22:33:20 -04:00
Rapptz 35c0476dbb Add TextChannel.last_message_id and TextChannel.last_message 2019-03-20 22:30:23 -04:00
Rapptz c30a366106 Try to consistently use "inherit" vs "derive" in documentation. 2019-03-19 09:23:12 -04:00
Rapptz 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
Rapptz 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
Rapptz 2ce42b5b50 Some widget fixes. 2019-03-19 09:23:09 -04:00
Rapptz 5e65ec978c Take back ownership of files from aiohttp for retrying requests.
Fix #1809
2019-03-18 07:54:36 -04:00
Rapptz 8ba48c14a7 Minor typo fix. 2019-03-18 05:34:20 -04:00
Rapptz 963cf4b34e Add on_disconnect event.
I assume this is where it has to be. Fix #1937
2019-03-18 05:29:38 -04:00
Rapptz 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
Rapptz cb9ae7bd76 Sorting bucket requires an integer. 2019-03-17 15:16:46 -04:00
Rapptz f3f2f882fd Fix typo in private property name. 2019-03-17 15:14:58 -04:00
Rapptz 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
Rapptz 5061915b2a Add support for store channels. 2019-03-17 14:32:51 -04:00
Rapptz 4bd4c23694 Fix NameError in Embed.to_dict 2019-03-17 11:51:54 -04:00
Rapptz 053e2f5b9a Fix documentation linking issue in Messageables and Context 2019-03-16 09:55:29 -04:00
Rapptz cc3b6bdd72 [commands] Rename it to Context.send_help for consistency. 2019-03-16 09:37:47 -04:00
Rapptz ed5fcb320e [commands] Add Context.show_help helper to use the HelpCommand set.
Fixes #1983
2019-03-16 09:33:05 -04:00
Rapptz 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
Rapptz 8466250bcc [commands] Assign context inside HelpCommand.prepare_help_command 2019-03-16 09:24:17 -04:00
Rapptz b728061522 [commands] Add HelpCommand.get_bot_mapping helper. 2019-03-16 09:23:34 -04:00
Rapptz 7a5102ece9 [commands] Return result of send_group_help and send_command_help 2019-03-16 07:33:12 -04:00
Rapptz 0063fffb1a Update URL in embed badge. 2019-03-16 07:10:16 -04:00
Rapptz f37bc22054 Update Japanese .po files 2019-03-16 05:49:10 -04:00
Rapptz 36ac1720d8 Update README 2019-03-16 05:09:50 -04:00
Rapptz 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
Rapptz 25acad5de3 [commands] Add commands.Paginator.__len__ 2019-03-16 03:38:51 -04:00
Rapptz 70c5f1723f Fix Embed.to_dict to work with TZ aware datetime objects. 2019-03-15 05:56:01 -04:00
Rapptz 3527203e07 [commands] Redesign HelpFormatter into HelpCommand
Part of #1938
2019-03-15 05:54:23 -04:00
Rapptz 27c6d2c923 [commands] Add Cog.description to get the clean docstring. 2019-03-14 11:42:09 -04:00
Rapptz c4a21cc1d4 [commands] Add Cog.qualified_name to query the specified cog name. 2019-03-13 23:43:29 -04:00
Rapptz 6ffd079cb9 Support path-like objects in Attachment.save.
Fix #1958
2019-03-13 22:04:51 -04:00
Rapptz 7fbdc6e83f Add Embed.copy to do a copy on an embed object. 2019-03-13 06:08:21 -04:00
Rapptz 35a330c5d3 Add Embed.__len__ to query total character size of an embed. 2019-03-13 06:07:57 -04:00
Rapptz 73aca4d4d3 Expose Embed.from_data as Embed.from_dict
This is a breaking change.
2019-03-13 06:02:56 -04:00
Rapptz a70db36cfc Handle type updates in TextChannel._update for news channels. 2019-03-12 23:13:22 -04:00
Rapptz e1d9f8f59f [commands] Support staticmethod listeners and disallow them in commands 2019-03-12 11:54:45 -04:00
Rapptz 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
Rapptz 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
Rapptz 13b23963ec Add exception hierarchy to the documentation. 2019-03-12 01:15:24 -04:00
Rapptz e15b4ef8e4 Revert default parameter use_cached of Attachment.save back to False.
Fix #1973
2019-03-10 20:12:24 -04:00
Rapptz 5ea84fb971 Add support for guild news channels. 2019-03-08 21:40:43 -05:00
Rapptz e87ca143d3 Bump websockets version to 7.0
Should be fine. Hopefully. Fix #1787
2019-03-08 20:18:05 -05:00
Rapptz 03fdd81531 Remove outdated playlist.py example.
Fixes #1870
2019-03-08 20:04:21 -05:00
Rapptz 52e17d1c2d Add github templates and CONTRIBUTING.md file.
Fix for #1685
2019-03-08 19:59:19 -05:00
Rapptz aceec2009a Have use_cached=True by default for Attachment.save.
Also touch up the documentation a bit.
2019-03-06 20:07:38 -05:00
Rapptz d124daef33 Fix non-working example in commands documentation. 2019-03-06 02:37:02 -05:00
Rapptz 78459f3ed0 Don't reconnect during 4014/4015 in voice websocket. 2019-03-05 19:45:13 -05:00
Rapptz 45af9fa40b [commands] Allow passing of typing.Union into Greedy. Fix #1951 2019-03-03 06:24:35 -05:00
Rapptz 97de4542f7 Add project URLs to setup.py 2019-03-02 16:51:09 -05:00
Rapptz df130e10f0 Prevent AttributeError when closing HTTPClient early. 2019-03-02 16:48:40 -05:00
Rapptz c960465366 Mock a ConnectionState object to fix wait=True errors in webhooks.
Fixes #1898
2019-03-02 06:14:10 -05:00
Rapptz 311788c7cb Properly clean-up file objects when necessary instead of instantly.
Fix #1770
2019-03-02 05:52:22 -05:00
Rapptz 076f9bcac7 [commands] Fix name clash overwriting T.__class__.__name__
Fixes #1944
2019-02-28 19:47:25 -05:00
Rapptz 69f5a70eeb [commands] Allow Converter instances in Greedy. Fix #1939. 2019-02-27 21:38:55 -05:00