Skip to main content

A robust and powerful Lavalink wrapper for py-cord and derivatives.

Project description

https://img.shields.io/badge/Python-3.8%20%7C%203.9%20%7C%203.10-blue.svg https://img.shields.io/github/license/EvieePy/Wavelink.svg PyPI - Downloads Maintenance

pywave is a fork of the package Wavelink. pywave is a robust and powerful Lavalink wrapper for Pycord. pywave features a fully asynchronous API that’s intuitive and easy to use with built in Spotify Support and Node Pool Balancing.

Installation

The following commands are currently the valid ways of installing WaveLink.

pywave requires Python 3.8+

Windows

py -3.9 -m pip install -U pywave

Linux

python3.9 -m pip install -U pywave

Getting Started

A quick and easy bot example:

import pywave
from discord.ext import commands


class Bot(commands.Bot):

    def __init__(self):
        super().__init__(command_prefix='>?')

    async def on_ready(self):
        print('Bot is ready!')


class Music(commands.Cog):
    """Music cog to hold Wavelink related commands and listeners."""

    def __init__(self, bot: commands.Bot):
        self.bot = bot

        bot.loop.create_task(self.connect_nodes())

    async def connect_nodes(self):
        """Connect to our Lavalink nodes."""
        await self.bot.wait_until_ready()

        await pywave.NodePool.create_node(bot=bot,
                                            host='0.0.0.0',
                                            port=2333,
                                            password='YOUR_LAVALINK_PASSWORD')

    @commands.Cog.listener()
    async def on_pywave_node_ready(self, node: pywave.Node):
        """Event fired when a node has finished connecting."""
        print(f'Node: <{node.identifier}> is ready!')

    @commands.command()
    async def play(self, ctx: commands.Context, *, search: pywave.YouTubeTrack):
        """Play a song with the given search query.

        If not connected, connect to our voice channel.
        """
        if not ctx.voice_client:
            vc: pywave.Player = await ctx.author.voice.channel.connect(cls=wavelink.Player)
        else:
            vc: pywave.Player = ctx.voice_client

        await vc.play(search)


bot = Bot()
bot.add_cog(Music(bot))
bot.run('YOUR_BOT_TOKEN')

Project details


Release history Release notifications | RSS feed

This version

1.5

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pywavee-1.5.tar.gz (27.6 kB view hashes)

Uploaded Source

Built Distribution

pywavee-1.5-py3-none-any.whl (30.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page