Rapptz
cac84e517b
Always overwrite Emoji references in the state.
There is potential that when recreating the Emoji list in the
GUILD_EMOJIS_UPDATE event would just fetch from cache and the element
in cache having an out of date Guild reference. This Guild reference
will be kept alive for longer than it should be.
By always overwriting the Emoji reference, this problem goes away.
8 years ago
Rapptz
e749b19131
Remove unnecessary shielding.
This was causing the exception to be suppressed and print 'NoneType'
instead.
8 years ago
Rapptz
fde35848f6
Make Role.members use a list comprehension.
8 years ago
Rapptz
b88658f42f
Allow Emoji to be used in a weakref.
8 years ago
Rapptz
aef170d7e0
Fix memory leak by holding on to Emoji references weakly.
The library had a memory leak in the case using the global emoji cache.
When the bot would leave the guild, the Emoji would maintain a strong
reference to the Guild keeping them alive along with the entire state
associated with it.
8 years ago
Rapptz
46951e27f7
Revert "Reference the ConnectionState by weakref."
This reverts commit 730a0e2d53
.
8 years ago
Rapptz
4160cd7d12
Set closed state before actually finishing cleaning up.
8 years ago
Rapptz
9885a946e1
More robust cleanup for Client.run.
This should prevent asyncio.CancelledError from being propagated more
and suppressed "Task was destroyed but was pending!" warnings when
doing graceful closes outside of using a KeyboardInterrupt.
To make clean up a bit more robust, also add signal handlers
for POSIX systems.
8 years ago
Rapptz
9fcbe5c678
Sort Guild.text_channels and Guild.voice_channels in UI order.
8 years ago
Rapptz
959c60543d
Upgrade aiohttp requirement to 2.0.
Apparently this doesn't cause any issues with the existing code as-is.
I suspect the real issue will be with people's third party code.
8 years ago
Rapptz
730a0e2d53
Reference the ConnectionState by weakref instead of a strong reference.
Hopefully this means when the bot has some lingering object for
whatever reason, the memory doesn't double due to it having a strong
reference to an outdated connection state.
8 years ago
Rapptz
8a34c412ed
Add Permissions.view_audit_log
8 years ago
Rapptz
31a7093433
[commands] Fix minor spacing issue in Command.signature
8 years ago
Rapptz
fd62c8a4f1
Aggregate shard closing futures instead of doing them sequentially.
8 years ago
Rapptz
5461bfb475
Check if we're closed before attempting to do a reconnect.
8 years ago
Rapptz
a0cdb19c5f
Eventual consistency fixes.
8 years ago
Rapptz
3087600c8d
[commands] Add Command.signature
This replaces HelpFormatter.get_command_signature for the most part.
8 years ago
Rapptz
54fdafb792
[commands] Add BotBase.get_cog_commands to get all a cog's commands.
Self-explanatory. This should help create help commands for a cog
more easily.
8 years ago
Rapptz
fe588a4d52
[commands] Change GroupMixin.commands to all_commands
This is a breaking change as GroupMixin.commands now returns a set
of unique Command objects.
8 years ago
Rapptz
c90e52450a
Reconnect on any OSError.
8 years ago
Rapptz
4ffded622a
Removing acking on channels.
8 years ago
Rapptz
df0f1bfbdf
Fix Client inability to shard by actually propagating the shard_id
8 years ago
Rapptz
0321558dec
Handle case when guild owner somehow doesn't exist in permissions_for
8 years ago
Rapptz
51b0baeb9d
Speed up message update handling.
Apparently, checking if something is not None and then calling it is
faster than having an identity function that will just return the
original value untransformed, such as a lambda or doing a str(str) call
8 years ago
Rapptz
c089aa199b
Remove Message.edited_timestamp in favour of Message.edited_at
8 years ago
Rapptz
1239e88d05
Handle aware datetimes in embeds.
8 years ago
Rapptz
9c6d9f1a84
Remove call handling for now.
8 years ago
Rapptz
058f1f13eb
Fix premium key being missing in profile endpoint.
8 years ago
Rapptz
d87d4e716f
Retry on more exceptions in auto reconnect code.
8 years ago
Rapptz
ead18e3948
Fix issue with members not copying correctly.
8 years ago
Rapptz
96a43fa9e3
Fix NameError in Role.edit
8 years ago
Rapptz
76e76f2905
Add underscore to HTTPClient.session to imply privateness.
8 years ago
Rapptz
c4c17351c6
Add commit number to pip version for easy identification.
8 years ago
Rapptz
aa41101237
Remove Client.accept_invite
8 years ago
Rapptz
98cfb53d3b
[commands] Add Context.me property.
8 years ago
Rapptz
5ce88c8a3f
Reconnect even if we close with 1000 since Discord can send it.
Rely on is_closed() instead since this is the true metric of a clean
closure.
8 years ago
Rapptz
e78a5c0643
Remove remaining voice_member tracking.
8 years ago
Rapptz
39d65305a3
Add TextChannel.members to get members that can see a channel.
8 years ago
Rapptz
cf40e94af6
Rename VoiceChannel.voice_members to VoiceChannel.members
8 years ago
Rapptz
aa59762c04
Remove extra space.
8 years ago
Rapptz
8daf411c72
Add Messageable.ack
8 years ago
Rapptz
f7524c9919
Add User.is_blocked and User.is_friend shortcut methods.
8 years ago
Rapptz
9a1215e13b
Add support for message acking.
8 years ago
Rapptz
751933f068
Remove nonce when sending messages.
8 years ago
Rapptz
cbbc75cd8d
Move purge and delete_messages from Messageable.
This is a breaking change. Move these two to TextChannel since the
other things that implement Messageable cannot reliably do bulk delete
actions in their respective channels.
8 years ago
Rapptz
f6fcb62c7b
Check for PrivateChannel before GuildChannel in Client.get_channel
8 years ago
Rapptz
29f676c42e
Wrap asyncio.wait into a saner alternative that raises TimeoutError.
Fixes #494
8 years ago
Rapptz
b2ffeac297
Make Guild.large a property instead of an attribute.
8 years ago
Rapptz
1b3234ab64
Add info logging for close codes we cannot handle.
8 years ago
Rapptz
9d4f3ebb43
Miscellaneous documentation fixes in Client.wait_for
8 years ago