Releases: PythonistaGuild/Wavelink
V3.4.1
Version 3.4.1
Documentation:
https://wavelink.dev
Support:
Discord Server
Fixes
- A small error in the players inactivity checks task.
v3.4.0
Version 3.4.0
Documentation:
https://wavelink.dev
Support:
Discord Server
Additions
Player.inactive_channel_tokens
- This addition dispatches the currently available on_wavelink_inactive_player event when the Player has been inactive for x amount of played tracks. E.g. after
3tracks if no real members (Members that aren't bots) have been in the channel, this event will fire.
PluginFilters
- Added the
PluginFiltersfilter class. This addition allows the setting of filters on Lavalink Plugins that support it.
Changes
Playable.search & wavelink.Pool.fetch_tracks
- Added the optional
nodekeyword-only argument; Allows passing aNodewhich will be used to search tracks. Defaults toNonewhich uses thewavelink.Poolidentical to previous versions.
Changelog
- Feature/playable node and Inactive Channel Check by @EvieePy in #303
- Fix/plugin filters by @EvieePy in #307
Full Changelog: v3.3.0...v3.4.0
v3.3.0
Version 3.3.0
This release adds the populate keyword back to Player.play and has multiple small bug fixes.
Documentation:
https://wavelink.dev
Support:
Discord Server
Caution
You can no longer use a BETA version of Lavalink from version 3.1.0. Please upgrade your Lavalink to a stable version 4+.
Additions
Player.play:
- populate and max_populate
Adds thepopulateandmax_populatekeyword-only arguments, which allows the auto queue to fetch and fill with recommended tracks based on the played track.
Node.close:
- eject
Adds theejectkeyword argument, which when set toTruewill remove theNodefrom the Pool.
Fixes
- Bug in Queue not repeating a song when set to loop.
- Bug in
Node.closewhich wouldn't disconnect currently playing players correctly. - Bug in filters where some arguments were named incorrectly.
- Bug in Queue where using
put_waitwhile aget_waitwas waiting for a track would result in allget_waithanging. Playlist.extrasproperty now correctly sets the provided extras on each individual track.
QoL
- Added
typing_extensionsto requirements.
Thanks
v3.2.0
Version 3.2.0
This release adds two main additional features:
Documentation:
https://wavelink.dev
Support:
Discord Server
Caution
You can no longer use a BETA version of Lavalink from version 3.1.0. Please upgrade your Lavalink to a stable version 4+.
Additions
Events:
- on_wavelink_inactive_player()
Called when the Playersinactive_timeoutexpires. Useful for disconnecting the bot after a timeframe of no activity.
Utils:
- Playlist.extras
Similar toPlayable.extras, but this appliesPlayable.extrasto each track in the playlist and on thePlaylistitself. - Playable.raw_data
The raw payload received from lavalink. You can use this payload to re-build a track later.
Changes
- Queue (Redesign)
- ++ Queue.swap()
- ++ Queue.peek()
- ++ Queue.index()
- ++ Queue.remove()
- ! ! Queue.delete()
- ++ Queue.get_at()
- ++ Queue.put_at()
- ++ Queue.count
- ++ Queue.is_empty
- ++ Queue.loaded
The queue has been redesigned to be more friendly for wavelink use. Internally the queue now uses a list instead of a deque. QoL methods and properties have been added to make it easier to manage and use the queue. Please see the documentation for more information and special ways of using the queue. The queue is backwards compatible minus Queue.delete which is now not asynchronous.
QoL
- Updated the yarl dependency for better support on
Python 3.12+
v3.1.0
Version 3.1.0
This release adds some QoL features that have been frequently requested, and adds support for plugin events.
Documentation:
https://wavelink.dev
Support:
Discord Server
Caution
You can no longer use a BETA version of Lavalink on this release. Please upgrade your Lavalink to a stable version 4+.
Additions
Playable:
- Playable.extras
Updates to supportuserDatafield in Lavalink.
Node:
- Node.fetch_info
- Node.fetch_stats
- Node.fetch_version
- Node.fetch_player_info
- Node.fetch_players
All the above endpoints have been made public.
Important
Node.fetch_player_info and Node.fetch_players are not the same as Node.get_player. Please read the documentation before using these endpoints for more details.
Payloads:
- StatsResponsePayload
- PlayerStatePayload
- VoiceStatePayload
- PlayerResponsePayload
- GitResponsePayload
- VersionResponsePayload
- PluginResponsePayload
- InfoResponsePayload
- ExtraEventPayload
These payloads correspond to all the data received in the above endpoints, minus ExtraEventPayload which will be received in the on_wavelink_extra_event event.
Events:
- on_wavelink_extra_event
An event fired when an event that is unknown/unhandled by default is received, usually from Lavalink Plugins.
Warning
Make sure you know the source of your event when using on_wavelink_extra_event. Lavalink does not provide this information by default.
Utils:
- ExtrasNamespace
ExtrasNamespaceis a container class that holds all the information sent to Lavalink via theuserDatafield which can be set by passing adictofstrkeys toAnyvalue (Must be convertible to JSON) to Playable.extras. Please see documentation for more details.
Changes
Internally Wavelink now sends a different payload to Lavalink when playing a track or skipping. This is inline with Lavalink changes. Please upgrade your Lavalink to a stable version 4+ if you are currently on a beta version.
v3.0.0
Version 3 🎉
This is the initial release for version 3!
Changes are too big to go over here so please see:
https://wavelink.dev/en/latest/migrating.html
Documentation:
https://wavelink.dev
Examples:
https://github.com/PythonistaGuild/Wavelink/tree/main/examples
Help and Support:
https://discord.gg/RAKc3HF
Issues:
https://github.com/PythonistaGuild/Wavelink/issues
Installing:
https://github.com/PythonistaGuild/Wavelink#installation
Spotify Support is via LavaSrc:
https://github.com/topi314/LavaSrc
Key Notes:
- Pyright Strict
- Lavalink v4+
- Discord.py 2.0.1+
- Python 3.10+
Thank you to everyone who helped out during the development and beta phases <3
Special Thanks to:
@chillymosh
@AbstractUmbra
@Sachaa-Thanasius
v2.6.5
v3.0.0rc1
v2.6.3
Version: 2.6.3
Minor fix for auto_queue where it was raising NotImplementedError on an equality check.
v2.6.2
Version v.2.6.2
This version fixes the issue with auto_play queue raising errors when mixing YouTubeTracks and SpotifyTracks.
__hash__has been added to SpotifyTrackraise NotImplementedErrorin__eq__for Playable and SpotifyTrack