Wavelink

Latest version: v3.3.0

Safety actively analyzes 623608 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 12

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](https://discord.gg/RAKc3HF)


> [!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](https://wavelink.dev/en/latest/wavelink.html#wavelink.Player.play)
<sub>Adds the ``populate`` and ``max_populate`` keyword-only arguments, which allows the auto queue to fetch and fill with recommended tracks based on the played track.</sub>


**Node.close:**
- [eject](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.close)
<sub>Adds the ``eject`` keyword argument, which when set to ``True`` will remove the ``Node`` from the Pool.</sub>


Fixes

- Bug in Queue not repeating a song when set to loop.
- Bug in ``Node.close`` which wouldn't disconnect currently playing players correctly.
- Bug in filters where some arguments were named incorrectly.
- Bug in Queue where using ``put_wait`` while a ``get_wait`` was waiting for a track would result in all ``get_wait`` hanging.
- ``Playlist.extras`` property now correctly sets the provided extras on each individual track.


QoL
- Added ``typing_extensions`` to requirements.

Thanks
jackra1n
TrapDrap
DanLCD

3.2.0

This release adds two main additional features:

- [on_wavelink_inactive_player](https://wavelink.dev/en/latest/wavelink.html#wavelink.on_wavelink_inactive_player)
- [Player.inactive_timeout](https://wavelink.dev/en/latest/wavelink.html#wavelink.Player.inactive_timeout)
- [Queue (Redesign)](https://wavelink.dev/en/latest/wavelink.html#queue)

**Documentation:**
https://wavelink.dev

**Support:**
[Discord Server](https://discord.gg/RAKc3HF)


> [!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()](https://wavelink.dev/en/latest/wavelink.html#wavelink.on_wavelink_inactive_player)
<sub>Called when the Players `inactive_timeout` expires. Useful for disconnecting the bot after a timeframe of no activity.</sub>

**Utils:**
- [Playlist.extras](https://wavelink.dev/en/latest/wavelink.html#wavelink.Playlist.extras)
<sub>Similar to `Playable.extras`, but this applies `Playable.extras` to each track in the playlist **and** on the `Playlist` itself.</sub>
- [Playable.raw_data](https://wavelink.dev/en/latest/wavelink.html#wavelink.Playable.raw_data)
<sub>The raw payload received from lavalink. You can use this payload to re-build a track later.</sub>


Changes

- [Queue (Redesign)](https://wavelink.dev/en/latest/wavelink.html#queue)
- ++ [Queue.swap()](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.swap)
- ++ [Queue.peek()](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.peek)
- ++ [Queue.index()](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.index)
- ++ [Queue.remove()](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.remove)
- ! ! [Queue.delete()](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.delete)
- ++ [Queue.get_at()](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.get_at)
- ++ [Queue.put_at()](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.put_at)
- ++ [Queue.count](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.count)
- ++ [Queue.is_empty](https://wavelink.dev/en/latest/wavelink.html#wavelink.Queue.is_empty)
- ++ [Queue.loaded](https://wavelink.dev/en/latest/wavelink.html#wavelink.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+`

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](https://discord.gg/RAKc3HF)


> [!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](https://wavelink.dev/en/latest/wavelink.html#wavelink.Playable.extras)
<sub>Updates to support `userData` field in Lavalink.</sub>

**Node:**
- [Node.fetch_info](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.fetch_info)
- [Node.fetch_stats](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.fetch_stats)
- [Node.fetch_version](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.fetch_version)
- [Node.fetch_player_info](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.fetch_player_info)
- [Node.fetch_players](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.fetch_players)
<sub>All the above endpoints have been made public.</sub>

> [!IMPORTANT]
> [Node.fetch_player_info](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.fetch_player_info) and [Node.fetch_players](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.fetch_players) are not the same as [Node.get_player](https://wavelink.dev/en/latest/wavelink.html#wavelink.Node.get_player). Please read the documentation before using these endpoints for more details.

**Payloads:**
- [StatsResponsePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.StatsResponsePayload)
- [PlayerStatePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.PlayerStatePayload)
- [VoiceStatePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.VoiceStatePayload)
- [PlayerResponsePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.PlayerResponsePayload)
- [GitResponsePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.GitResponsePayload)
- [VersionResponsePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.VersionResponsePayload)
- [PluginResponsePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.PluginResponsePayload)
- [InfoResponsePayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.InfoResponsePayload)
- [ExtraEventPayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.ExtraEventPayload)
<sub>These payloads correspond to all the data received in the above endpoints, minus [ExtraEventPayload](https://wavelink.dev/en/latest/wavelink.html#wavelink.ExtraEventPayload) which will be received in the [on_wavelink_extra_event](https://wavelink.dev/en/latest/wavelink.html#wavelink.on_wavelink_extra_event) event.

**Events:**
- [on_wavelink_extra_event](https://wavelink.dev/en/latest/wavelink.html#wavelink.on_wavelink_extra_event)
<sub>An event fired when an event that is unknown/unhandled by default is received, usually from Lavalink Plugins.</sub>

> [!WARNING]
> Make sure you know the source of your event when using [on_wavelink_extra_event](https://wavelink.dev/en/latest/wavelink.html#wavelink.on_wavelink_extra_event). Lavalink **does not** provide this information by default.

**Utils:**
- [ExtrasNamespace](https://wavelink.dev/en/latest/wavelink.html#wavelink.ExtrasNamespace)
<sub>`ExtrasNamespace` is a container class that holds all the information sent to Lavalink via the `userData` field which can be set by passing a `dict` of `str` keys to `Any` value (Must be convertible to JSON) to [Playable.extras](https://wavelink.dev/en/latest/wavelink.html#wavelink.Playable.extras). Please see documentation for more details.</sub>


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.

3.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

3.0.0rc1

Version **3** Release Candidate: **1**.

This is the first release candidate for Wavelink **3**.

Please see:
[Docs](https://wavelink.dev/en/feature-v3/)
[Migrating](https://wavelink.dev/en/feature-v3/migrating.html)

You can install this release via:
`pip install -U wavelink --pre`

2.6.5

Final release for the version 2 lifecycle!
Please consider moving on to version 3👋

**Additions:**
- Check to the queue to allow adding `SoundCloudPlaylist` directly.

Page 1 of 12

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.