Rapptz
ac90159c72
Improve logging in more places.
This shows the Shard ID in more places, along with a gateway trace and
session ID. Also helps show the RESUME/IDENTIFY/RESUMED/READY flow a
bit more instead of it looking like the connection has zombied out.
8 years ago
Rapptz
982308da3c
Use global user cache to fetch reaction event data.
Also make sure it isn't dispatched unless the data meets the integrity
checks (i.e. not None).
8 years ago
Rapptz
bcfb31779d
Fix KeyError in certain logging cases.
8 years ago
Rapptz
7f58853e3a
Keep track of Emoji instances myself.
WeakValueDictionary cleans up too late and brings too little benefit.
Also clean up the state when the first READY is encountered for
AutoShardedClient and when any READY is encountered in regular Client.
8 years ago
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
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
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
a0cdb19c5f
Eventual consistency fixes.
8 years ago
Rapptz
9c6d9f1a84
Remove call handling for now.
8 years ago
Rapptz
ead18e3948
Fix issue with members not copying correctly.
8 years ago
Rapptz
e78a5c0643
Remove remaining voice_member tracking.
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
b8727fd463
Fix Client.emojis returning a list of IDs.
8 years ago
Rapptz
0dac5e3139
Add Client.emojis to get all emojis.
This removes the older get_all_emojis generator.
8 years ago
Rapptz
554ae196d3
Add missing int casts in many different events in the state.
Also remove redundant role parsing in Member._update_roles.
8 years ago
Rapptz
b876133e87
Add compatibility shim for asyncio.Future creation.
Should provide better support for uvloop.
8 years ago
Rapptz
e1aaf74fa7
Add option to disable auto member chunking.
8 years ago
Rapptz
d206ee792b
Fix issue with user bots chunking unavailable guilds.
8 years ago
Rapptz
ff9f5749e1
Update copyright year to 2017.
8 years ago
Rapptz
4c981ee631
Add support for relationships.
8 years ago
Rapptz
fa384f2114
Make ClientUser separate from a regular User.
This removes Client.edit_profile in favour of ClientUser.edit.
8 years ago
Rapptz
f465f88d81
Reimplement Guild.me property without patching it in.
8 years ago
Ian Salmons
c635ce2526
Simple parser for CHANNEL_PINS_UPDATE
8 years ago
Rapptz
92c1637921
Allow overriding the shard_ids used for initial shard launch.
8 years ago
Rapptz
20041ea756
Implement AutoShardedClient for transparent sharding.
This allows people to run their >2,500 guild bot in a single process
without the headaches of IPC/RPC or much difficulty.
8 years ago
Rapptz
d54d7f7ac0
Fix variable shadowing in READY parsing.
8 years ago
Rapptz
808a05ff2d
Move global user cache to a WeakValueDictionary.
8 years ago
Rapptz
c863d93f69
Fix bug that made member roles go missing.
8 years ago
Rapptz
7690455b21
Make User and Member messageable.
8 years ago
Rapptz
98b981848d
Move message creation to a factory method inside ConnectionState.
8 years ago
Rapptz
5e6bfecb07
Move away from StateContext and use ConnectionState directly.
8 years ago
Rapptz
4e175d36d3
Add delete_after parameter to MessageChannel.send
8 years ago
Rapptz
79a49f9145
Absolute import some circular dependencies to appease Python 3.4.
8 years ago
Rapptz
2c50c18ca3
Change dict value views into lists.
9 years ago
Rapptz
c187d87dae
Re-add support for reactions.
We now store emojis in a global cache and make things like adding
and removing reactions part of the stateful Message class.
9 years ago
Rapptz
59a0df5f98
Rename try_insert_user to store_user
9 years ago
Rapptz
5cb3ad14e8
Make emojis and members stateful.
9 years ago
Rapptz
a7a60e433b
Make roles and guilds stateful.
9 years ago
Rapptz
d1d54a468a
Rename Server to Guild everywhere.
9 years ago
Rapptz
53ab263125
Split channel types.
This splits them into the following:
* DMChannel
* GroupChannel
* VoiceChannel
* TextChannel
This also makes the channels "stateful".
9 years ago
Rapptz
45c729b167
Switch IDs to use int instead of str
9 years ago
Rapptz
31229a53e9
Optimise VoiceState for memory.
Instead of storing one VoiceState per Member, only store them if
necessary. This should bring down the number of instances
significantly.
9 years ago
Rapptz
044b0824e6
Begin working on the rewrite.
9 years ago
Rapptz
a8264f6540
Chunk every guild if it's a user bot.
This also increases the timeout for chunking by 30 seconds for every
chunk we're waiting for.
8 years ago
Rapptz
bed2e90e82
Properly propagate loop. Fixes #420 .
8 years ago
Rapptz
a0f4ad36eb
Timeout waiting for chunking.
Sometimes the bot would keep waiting for chunks that somehow finished
before getting to the `wait` call. This is more so a temporary fix
rather than a fully correct one.
8 years ago
khazhyk
c8fd8a9e1a
Fix crash on duplicate or out of order reactions.
Eventual consistency ftw
9 years ago
Rapptz
92c3c2804d
Support MESSAGE_REACTION_REMOVE_ALL event.
9 years ago