isiah-lloyd / radiyo Goto Github PK
View Code? Open in Web Editor NEWA Discord bot to listen to the radio with friends!
Home Page: https://radiyobot.com
License: MIT License
A Discord bot to listen to the radio with friends!
Home Page: https://radiyobot.com
License: MIT License
Randomly pick 5 stations from the category to display to user
If there is an error, an attempt should be made to leave all voice channels and notify what happened in the notification channel.
Some stations spam metadata changes when you start the stream. It ends up looking something like this:
We should not push a new metadata change if it happens within a certain amount of time (1 sec?), and probably check if the song is the same (you may join a stream during a song change, then two messages back to back is acceptable)
If the bot is in one channel, and someone else in another voice channel tries to play something...havok. Either need to delete the VoiceManager and recreate it, or have a method to update a VoiceManagers VOICE_CHANNEL and NOTIFCATION_CHANNEL
A browse command to help people find stations they would want to listen to
Initial release will probably just pull from OnRadio's top songs API, but in the future should include recently played stations, featured stations, and trending stations.
Right now you can search by everything (using the playlist API), that isn't too useful. I think the search command should be split into searching by artist and station (artist being the default option). When searching by artist it will show the current playing song instead of the sation description.
Don't know if this could be considered a bug or if it will be able to be fixed.
It seems like a majority of internet stations are originating from Germany. If a user searches a station by an artist, they will often end up on one of these German stations and then after their English song ends the station will start playing German music. Although funny, this can also be annoying for some.
The search command isn't useful if we can't play a station from it. Use the select menu to allow a station to be selected and played.
Yeah, the title is cheeky but sometimes a audio stream will switch to idle, causing the stream to stop with no error or message. We can listen to the body ReadableStream and if closes, try to reconnect to the stream.
No errors occur, just no audio plays
There a bit of misconfigered stream servers with invalid certs. Either rewrite url to http or set it so just those calls ignore ssl errors
A simple landing page for marketing/visibility.
¯_(ツ)_/¯ idk why this is happening, might just have to defer the deferReply function call
Triple J doesn't embed the metadata in their audio stream...annoying, possibly use TuneIn's API as a workaround:
https://feed.tunein.com/profiles/s25508/nowPlaying?token=eyJwIjpmYWxzZSwidCI6IjIwMjItMDctMjdUMDE6MDU6MDIuODg3MTczN1oifQ&itemToken=BgUFAAEAAQABAAEAb28BpGMAAAEFAAA&formats=mp3,aac,ogg,flash,html,hls,wma&serial=d1730c18-ca78-4195-81e1-3f7aedad2f00&partnerId=RadioTime&version=5.18&itemUrlScheme=secure&reqAttempt=1
It's ugly, but it works...for now. Clean this up when bored or smth.
Laut.fm stations start with an annoying preroll ad that inhibits bad ux, prefer other stations above them.
So now that we are stuck at the 100 server limit, it would be nice to have a way to automatically leave servers that haven't used the bot in a while. I've been doing this mainly using the tool in tools/guildCli.ts
Here's the criteria ive been using to leave servers:
This will require better analytics collection as I've just been cross-referencing the text logs to figure out server activity.
this ones a maybe, don't know if I like the idea. But when one person changes stations, the sudden shift can be jarring. Maybe play like a static sound when switching?
Replace console logging with Winston logging.
If user is using /play and a station isn't found, the error message is vague. First, attempt to use the artist reco engine to play a related station. If not, then explain with a better error and a link to add station.
This would allow for radio shows that also have extended podcasts such as the BBC
Right now, anyone can do anything. It's chaos. Allow server admins to choose who can start/stop the radio. It may be better to implement this once Discord releases their new Permissions system: https://gist.github.com/Stalruth/fb384bf118be83a00d9f5ae7ab89a87b#permissions-v201
This will serve two purposes
Give helpful hints about bot features and usability in some responses. Don't be too annoying.
https://github.com/node-fetch/node-fetch/blob/main/docs/ERROR-HANDLING.md
If an API goes down or an unexpected response is encountered, the whole program crashes. Bad.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.