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
Rapptz
21a296d538
[commands] Error out when someone passes plain Cog.listener decorator.
...
Should make this error easier to catch rather than silent failure.
2019-02-27 21:38:55 -05:00
Rapptz
48b60b2eac
Prepare fix for aiohttp 4.0 breaking change with session creation.
2019-02-27 06:34:30 -05:00
Rapptz
7240d170c1
Update Member.joined_at on MESSAGE_CREATE and document it can be None.
...
Fixes #1638
2019-02-27 06:23:08 -05:00
Rapptz
757584e651
[commands] Add support for stacking Cog.listener decorator.
...
Fix #1926
2019-02-27 04:29:54 -05:00
Rapptz
bbc4460c38
Fix Emoji.__hash__ being None.
...
When a type defines __eq__, Python removes its __hash__ function.
Fixes #1933
2019-02-26 08:44:25 -05:00
Rapptz
f6869242ca
Update Japanese .po files.
2019-02-24 04:10:48 -05:00
Rapptz
d5d9164810
[commands] Fix special method detection for regular function objects.
...
Fixes #1920
2019-02-24 00:24:31 -05:00
Rapptz
3a8214a115
[commands] Remove Bot.get_cog_commands
2019-02-23 11:02:19 -05:00
Rapptz
ab8e7b7732
[commands] Fix bug in behaviour in the cog inspection methods.
2019-02-23 10:51:23 -05:00
Rapptz
7d877e9067
Better jpeg detection in utils._get_mime_type_for_image
...
Fixes #1901
2019-02-23 10:25:05 -05:00
Rapptz
7ad4425c57
Update copyright years.
2019-02-23 09:26:39 -05:00
Rapptz
d3bc35a573
[commands] Update stale parent references in subcommands.
...
This bug was kind of a long one to figure out, as per #1918 documents
the issue had to do with subcommands but the actual adventure in
finding this one was a long one.
The first problem was that Command.cog was for some reason None, which
indicated that a copy was happening somewhere along the way. After some
fiddling I discovered that due to the copies of `Cog.__cog_commands__`
the groups pointed to out-dated versions that got overriden by the new
copies.
The first attempt at fixing this was straightforward -- just remove the
subcommand from the parent and replace it with the newer reference that
we just received. However, this ended up not working due to a strange
mystery where the subcommand being invoked was neither the original
copy nor the new copy residing in `Cog.__cog_commands__`.
Some more investigation later pointed out to me that a copy occurs
during the `Group.copy` stage which calls `Command.copy` for all its
subcommands. After spotting this out I had realised where the
discrepancy comes from. As it turns out, the subcommand copy that was
being invoked was actually a stale one created from `Group.copy`.
The question remained, how come that one was being called? The problem
stemmed from the fact that when the subcommand was copied, the parent
reference pointed to the old parent. Since the old parent was the one
that was getting the new reference, it went practically untouched. This
is because the calling code fetches the child from the parent and the
old parent is nowhere in the call chain.
To fix this issue we needed to update the parent reference, and in
order to do that a temporary lookup table is required pointing to the
latest copies that we have made.
Thus ends a 3.5 hour bug hunting adventure.
2019-02-23 09:26:01 -05:00
Rapptz
9827d6eeaf
[commands] Fix issue with decorator order with checks and cooldowns
...
Now they're just explicitly copied.
2019-02-23 07:41:25 -05:00
Rapptz
10ed41d8a0
[commands] Fix bug with cog bot check once not being unloaded properly.
2019-02-23 07:40:00 -05:00
Rapptz
1a0b1dfd29
[commands] Fix attribute access in cogs to commands.
...
Previously they were outdated copies, this updates the copies to the
ones that are actually injected.
2019-02-23 07:38:04 -05:00
Rapptz
04ee10adc4
[commands] Fix bug with local checks and cooldowns not applying.
2019-02-23 05:38:35 -05:00
Rapptz
ac6e55353a
[commands] Copy on_error handlers in Command.copy
...
This fixes the issue of error handlers not applying.
2019-02-23 05:31:05 -05:00
Rapptz
f15cf7c845
[commands] Pass over kwargs to type.__new__
2019-02-23 05:18:24 -05:00
Rapptz
a8dd4a826f
Document listener changes in the migrating docs.
2019-02-23 04:26:03 -05:00
Rapptz
caf3d17d4a
Rework entire cog system and partially document it and extensions.
2019-02-23 04:10:10 -05:00
Rapptz
3f06f247c0
[commands] Fix up wording on HelpFormatter.get_ending_note
2019-02-18 16:29:58 -05:00
Rapptz
41924a8b32
Update Japanese .po files
2019-02-18 03:54:27 -05:00
Rapptz
60f9ac3062
Fix missing imports
2019-02-12 20:25:16 -05:00
Rapptz
5d78f43e55
Expose more information from partial invites, along with counts.
...
This adds the following information.
* `PartialInviteGuild` to replace `Object` patching
* `PartialInviteChannel` to replace `Object` patching
* Invite.approximate_member_count and Invite.approximate_presence_count
The new partial objects provide better documentation on what is
expected when you fetch random invites.
Fixes #1830
2019-02-12 20:22:47 -05:00
Rapptz
700dbb5555
Fix missing import.
2019-02-06 02:28:59 -05:00
Rapptz
e429763dea
Try to optimize for the common ASCII case.
...
This is still a slowdown (about 45ns to 300ns) but it's less severe
than the original implementation (about 900 to 1100ns).
2019-02-06 02:15:22 -05:00
Rapptz
7f4c57dd5a
Fix overwriting of AuditLogDiff.roles for multiple $add/$remove keys
2018-12-31 08:39:28 -05:00
Rapptz
dec14faea9
Log rate limit hits into WARNING instead of INFO.
2018-12-27 08:25:51 -05:00
Rapptz
b79a53cae4
Fix typo in exception message in Guild.edit
2018-12-17 22:33:07 -05:00
Rapptz
648e62031d
Add support for explicit_content_filter in Guild.edit
2018-12-17 18:04:32 -05:00
Rapptz
26bb6c6ddc
Fix some lingering attribute setting issues.
2018-12-14 21:59:31 -05:00
Rapptz
c7396dc8ac
Add support for mobile indicators and per-client statuses.
2018-12-14 20:57:21 -05:00
Rapptz
93d576a65b
Add support for spoiler attachments.
2018-12-14 19:09:25 -05:00
Rapptz
e6a8eb1a7c
Fix bug in Guild.splash_url
2018-11-26 02:04:01 -05:00
Rapptz
1f2602d11e
Support discordapp.com invite URLs.
2018-11-25 04:54:12 -05:00
Rapptz
8b18fa307b
Add support for default notification level in audit logs and Guild.edit
2018-11-25 01:42:33 -05:00