- If not downloading as zip, then youl need Git (for cloning the repository)
- Must have Docker. Download and install from Docker Desktop (for Windows).
Download the ZIP file and extract to your Documents folder.
Alternative:
git clone https://github.com/junder-git/app1_dockercompose_discordbot_quartmanager.gitLocate the .env.example file in the extracted directory and rename it .env then configure it as follows:
- Visit Discord Developer Portal
- Create a new application
- Add the redirect url http://localhost/callback to the dev portal
- Copy the OAuth2 Secret Key and Client Key to the
.envfile - Invite the bot to the server from discord dev portal with
botscope andadminpermissions in the oauth2 section for guild install.
- Visit YouTube Data API Portal
- Create a new application.
- Enable the youtube data v3 api for the project.
- Create and copy the
API keyto the.envfile
Note: You can ignore the 'redirect URL' environment variables if you only plan to use the Discord chat interface without the Flask webplayer.
Important: Add in the .env your own value for SECRET_KEY
Open Command Prompt (Win+R, type cmd) or PowerShell and navigate to the source directory:
cd C:/<YOUR_WINDOWS_USER_HERE>/Documents/app1_dockercompose_jbot_discordbot_quartmanager/jbotStart the bot:
docker-compose up --build -dGo to http://localhost for the webplayer and/or join a voice chat channel in discord, type jbot in any of the servers text channels to get the discord interface to pop up in there. I recommend doing this in a # bot-channel or some dedicated text channel.
Stop the bot:
docker-compose down -v- Current Risk: Flask API endpoints are publicly accessible
- Issue: These endpoints could be used to manipulate queues on other servers without being in the voice channel
- Solution in Progress: Implement authentication for Flask endpoints while maintaining necessary accessibility
- Note: Discord API is only accessible within the Docker network, so it's protected
- Twitch bot integration with channel points for song requests
- Track and playlist looping functionality
- Quick access to popular playlists (up to 10 per server)
- Protection against large playlists (100+ tracks)
- Queue size limit of 50 tracks
- Make sure after clicking add to queue in the flask webplayer search it doesnt clear the search and let it add more to queue
- Keep the last input in the search query box
- Limit of one bot instance per Discord server for any number of voice channels it may have.
-Keep Playlist results until you submit a new search
-Keep the last input in the search bar
-Option to loop song or playlist
-Commmand to add first search result of a qry to the playlist
-Cache last 2 songs or so?
-Give option to go back?
xxx


