Skip to main content

Music player for Discord

Project description

Документация для библиотеки dsplayer

Для пользователей библиотеки

Описание

dsplayer - это библиотека для Discord ботов. Она позволяет подключаться к голосовым каналам, воспроизводить треки из различных источников и управлять очередью воспроизведения. Также она имеет плагины которые способны роширить количество платформ

Установка

Установите библиотеку с помощью pip:

pip install dsplayer

Быстрый старт

Ниже приведен пример использования dsplayer для создания бота, который может воспроизводить треки из плозадок которые предусмотрены в заргуженых плагинах:

import disnake
from disnake.ext import commands
from dsplayer.plugin_system.plugin_loader import PluginLoader
from dsplayer.player_system.player import Player

intents = disnake.Intents.default()
bot = commands.Bot(command_prefix='!', intents=intents)

plugin_loader = PluginLoader()
players = {}

@bot.command()
async def play(ctx, *, query: str):
    voice_channel = ctx.author.voice.channel
    if ctx.guild.id not in players:
        players[ctx.guild.id] = Player(voice_channel, bot)
    player = players[ctx.guild.id]

    await player.connect()
    track_info = player.find_track_info(plugin_loader, query)
    await player.add_and_play(track_info)
    await ctx.send(f'Now playing: {track_info["title"]}')

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user}!')

bot.run('YOUR_BOT_TOKEN')

Блоее подробный пример создания бота

В директории examples/ вы найдете пример создания бота, использующего dsplayer.

Для разработчиков библиотеки и плагинов

Структура проекта

dsplayer/
│   __init__.py
├───player_system/
│   ├───__init__.py
│   ├───player.py
│   └───queue.py
├───plugin_system/
│   ├───__init__.py
│   ├───plugin_interface.py
│   └───plugin_loader.py
├───plugins/
│   ├───__init__.py
│   ├───query_plugin.py
│   ├───spotify_plugin.py
│   └───youtube_plugin.py
├───utils/
│   ├───__init__.py
│   ├───user_agent.py
│   ├───exceptions/
│   │   ├───lib_exceptions.py
│   └───local/
│       └───user_agents.txt
└───examples/
    └───example.py

Создание плагинов

Для создания плагинов необходимо реализовать интерфейс PluginInterface.

from dsplayer.plugin_system.plugin_interface import PluginInterface
from typing import List, Dict, Any

class YourPlugin(PluginInterface):
    def __init__(self):
        self.name = "YourPlugin"
        self.url_patterns = []

    def on_plugin_load(self) -> None:
        pass

    def on_plugin_unload(self) -> None:
        pass

    def search(self, data: str) -> Dict[str, Any]:
        # Реализуйте поиск трека
        pass

    def get_url_paterns(self) -> list:
        return self.url_patterns

Загрузка плагинов

Используйте PluginLoader для загрузки всех доступных плагинов.

from dsplayer.plugin_system.plugin_loader import PluginLoader

plugin_loader = PluginLoader()
plugins = plugin_loader.get_plugins()

Обработка исключений

Для обработки различных ошибок используйте исключения из dsplayer.utils.exceptions.lib_exceptions.

from dsplayer.utils.exceptions.lib_exceptions import VoiceChaneNotConnected, TrackNotFound, TrackError

try:
    # Ваш код
except VoiceChaneNotConnected as e:
    print(e)
except TrackNotFound as e:
    print(e)
except TrackError as e:
    print(e)

Project details


Download files

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

Source Distribution

dsplayer-1.1.0.tar.gz (33.3 kB view hashes)

Uploaded Source

Built Distribution

dsplayer-1.1.0-py3-none-any.whl (61.6 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