Code Monkey home page Code Monkey logo

waveview's Introduction


Waveview Music Dashboard

About

Waveview is a discord music bot with a build in dashboard for taking greater control of your music experience. You can queue up, play, and enjoy music with your friends with ease.

Waveview is built upon the Wavelink library, a Lavalink wraper for Discord.py which handles the music playing functions contained within the bot. https://discord.gg/YFq7QjqEuZ Come try it out on the demo server

Preview


Music Dashboard

Features

Waveview comes with a bunch of cool features:

  • Authentication - Waveview uses discords OAuth2 system to allow users to login and control the bot in the servers they are part of. Authentication only requires the identify scope (userame and profile picture)
  • Enhanced Control - Waveview has advanced track controls, including queue reordering, track scrubbing, and queue clearing features.
  • Snappy UI - Waveviews UI comes with intuitive but pleasant features that make interacting with the bot easy
  • Seamless Music Playing - Thanks to the Wavelink library, the music playing experience is extremely smooth with no audio tearing

Installation

Prerequisites

To set this up locally, it is strongly reccomended that docker and docker-compose be used. This will provide a fast and reliable way of setting Waveview up.

You will also need to have created a discord bot with all Privileged Gateway Intents turned on. Applications can be created here, and you can use the following guide for reference.

Required Configurations

You will need the following 4x environment variables for the Dockerfiles in order for the bot to work:

  • Discord bot token -> Found in the developer portal
    • Set this in bot/Dockerfile for the variable BOT_TOKEN
  • Client ID -> Developer Portal (Oauth2 -> General)
    • Set this in bot/Dockerfile for the variable BOT_CLIENT_ID
  • Client Secret (Oauth2 -> General)
    • Set this in bot/Dockerfile for the variable BOT_CLIENT_SECRET
  • Redirect URI (Oauth2 -> URL Generator)
    • Set this in frontend/Dockerfile for the variable NEXT_REDIRECT URI (See below for details on how to create this)

You can leave the rest of the environment variables as they are. If you plan to self host this, you may change them as needed. Furhter, if you want Spotify support, you should set the SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET environment variables in Lavalink/application.yml.

Creating a Redirect URI

In the developer portal under OAuth2->General, add a redirect for http://localhost:5090/auth/redirect.

Navidate to OAuth2->URL Generator. Set scopes to identify, and select the redirect URL to be the redirect we just created.

Contributing

Waveview is completely open to contributions, whether that be in adding features, improvements or documentation.

Please feel free to raise an Issue if needed.

Contact

The best way to contact me is on Discord: k4br

waveview's People

Contributors

br3nr avatar maxs555 avatar

Stargazers

 avatar

Watchers

 avatar

waveview's Issues

Queue rendered on frontend despite empty on backend

Description

When connecting back to the web app after some time has passed, and the player is no longer playing, there is a chance that a queue will be rendered on the front-end despite there being no active. This may be due to the fact that the websocket is not being established. The issue can be fixed by reconnecting the bot to another channel.

How to reproduce

  • Play spotify playlist
  • Leave for a few hours
  • Return and the issue may be present

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.