Releases: Fuyukai/curious
0.7.0 - Container Edition
-
Add get-by-name to :class:
.GuildChannelWrapper
, and :class:.GuildRoleWrapper
. -
Add :attr:
.Invite.features
. -
Add :class:
.GameType
for game types. -
Make :attr:
.Invite.inviter
a property that returns a :class:.Member
if one can be found. -
Remove :meth:
.Client.boot_shard
amongst others, and create :meth:.Client.handle_shard
to
do all gateway-related handling functions. -
Add :attr:
.Channel.overwrites
for a key-value mapping of overwrites. -
Add :class:
.Nickname
, and make :attr:.Member.nickname
an instance of :class:.Nickname
. -
Add :meth:
.EventManager.wait_for_manager
. -
Rename
MEMBER_
events toGUILD_MEMBER_
events. -
Add :class:
._MemberRoleContainer
, and make :attr:.Member.roles
an instance of this. -
Add :attr:
.Message.emojis
. -
Add :class:
.ChannelMessagesWrapper
, and move everything to point to it. -
Rewrite the gateway code significantly.
-
Use Lomond in a thread instead of our own wrapper.
-
Make opening a gateway a context manager.
-
Use proper dataclasses for state.
-
-
Add :class:
.AvatarUrl
. -
Add :class:
.GuildBan
, and make :meth:.Guild.get_bans
return a list of those. -
Move :attr:
.Guild._splash_hash
and :attr:.Guild._icon_hash
to public attributes. -
Add a
permissions.pyi
file for static introspection of the permissions class. -
Add a :class:
.GuildBanContainer
. -
Enable :mod:
trio
support. -
Add :func:
.autoplugin
which automatically assigns commands inside a plugin. -
Add :meth:
.Plugin.spawn
for easy background task spawning. -
Add :attr:
.Channel.children
to get the children of a channel. -
Deprivatize :meth:
.State.find_message
. -
Lookup messages in the cache to avoid a roundtrip when doing :meth:
.ChannelMessagesWrapper.get
.
0.6.0
0.6.0 (Released 2017-11-05)
-
Bring voice code inline with the standard of the rest of the code.
-
Change the voice gateway to use an async thread, rather than a regular thread.
-
Document and make public :meth:
.VoiceClient.get_packet_header
,
:meth:.VoiceClient.get_voice_packet
and :meth:.VoiceClient.get_ip_discovery_packet
.
-
-
Make :class:
.AppInfo
a subclass of :class:.Dataclass
. -
Only sleep on shard creation until the last shard.
-
Move :meth:
.Channel.is_private
to :meth:.Channel.private
. -
Move :meth:
.IDObject.timestamp
to :meth:.IDObject.snowflake_timestamp
. -
Make some things use ID references rather than object references, and deprivatize the ID
attributes on these objects. -
Add support for channel categories in the API and the gateway.
-
Reorganize commands code significantly:
-
Move all of the commands code out of :class:
.Client
. -
Add new :class:
.CommandsManager
. -
Overhaul :class:
.Context
to do more, such as the actual processing. -
Remove :class:
.Command
in favour of annotated functions.
-
-
Reorganize events code significantly:
-
Move all the events code out of :class:
.Client
. -
Add new :class:
.EventManager
. -
Add event hooks, which are called with every event the bot receives.
-
Overhaul :meth:
.EventManager.wait_for
so that it uses :class:curio.Promise
rather than
terrible events. -
Change temporary listeners to raising ListenerExit instead of returning a truthy/falsey value.
-
-
Reboot shards properly when they disconnect, using a while True loop inside the TaskGroup.
-
Add :attr:
.State.guilds_ordered
. -
Add a 5 second timeout to each request made.
-
Add :meth:
.Message.get_invites
and :attr:.Message.invites
to get invites that are inside a
message object. -
Retry on h11 errors.
-
Use :mod:
asyncwebsockets
instead of :mod:cuiows
. -
:class:
.ReactionPaginator
can now have an optional title that is added as the content for
the message sent.