Comments (15)
Thanks for the idea! I have actually considered doing something like this, where a value in the config file can be changed to allow caching of downloaded audio files. Doing just that would be fairly easy to implement, but I would like to have some sort of auto-cleanup of old audio files as well.
I think this is a good idea though. I just didn't think anybody would care, or be playing 4 hour mixes with MumbleDJ. ;)
I will try to work on something like this when I get the time.
from mumbledj.
@raz0rsdge: I just thought of another idea to go along with this. What do you think about a !save command? Basically if you issue !save <youtube_url>
it will permanently save the audio file within ~/.mumbledj/songs/saved
. So if there is a song that is played a lot, it can be kept on hand for the next time it is used.
I will likely implement a way to both save a file permanently and have cached files that delete themselves after a user-defined amount of time. Just thought I would see if this is something that could possibly be used.
from mumbledj.
I wondered during play could it also get the nextsong... because of this long delay(hung) between big songs.
!save is ok, but I think it would be better just to save every file untill its not used for x days. or size is > x
from mumbledj.
@hamilton5: That is something I have wanted to implement but I just haven't gotten around to it. I'll try it out sometime to make sure it doesn't degrade performance.
from mumbledj.
I think @hamilton5 could be right, maybe its better to define in the configuration how much data is stored on disk and how long it stays there.
imho, the save command could be useful to generate some repeatable content? Maybe we have !saved 10 youtube URLs and generated the audio data, we could use a trigger like !repeat to replay from ~/mumbledj/songs/saved? Let's say if no new URL was added since reaching the end of the queue.
There must be a way to avoid typing !add for same URLs again and again ;)
from mumbledj.
@raz0rsdge: Alright, I will focus on setting up a caching system with a combined file size limit and file expiration. Both will be able to be tweaked in the config file. I may also add something like the !save command that I mentioned earlier if I get the time.
It may take awhile as I'm entering into a fairly busy time at university, so bear with me. :)
from mumbledj.
That sounds great to me - can't wait for the results!
Thanks and don't loose focus on (MIT?) =)
from mumbledj.
I think if you have a !save you need a !showsaved and then maybe a !play x too??(essentially creating a soundboard) while on the topic of 'hung' what about dos protection... what stops a player from spamming !add https://www.youtube.com/watch?v=8qnQz8kxte0 for example? some messages private to the user and not public to channel !help for example?
from mumbledj.
@hamilton5 That's something I hadn't thought of before. I'll have to look into some spam prevention.
from mumbledj.
OMG I got rickrolled ;]
from mumbledj.
!save <yt-link>
!list (shows saved yt links)
!play <yt-link>
Maybe add in the config how many songs can be saved, and make !save
an Admin only command by default. Someone spamming !save
wouldn't be too useful; so maybe include some way to prevent duplicates from being added to the saved list?
from mumbledj.
@MrKrucible: I was planning on making it an admin command by default. I will also make sure to add duplicate checking as well.
I'd like to somehow make it easier to use the !play
command though. I'm thinking that maybe the user who saves the song can give it an alias like so: !save <yt-link> <alias>
, and then play it with !play <alias>
.
from mumbledj.
Huh, special characters should be omitted from alias titles then to prevent any abuse of the aliases.
Specifically only characters from the basic unicode.
from mumbledj.
@MrKrucible In what situations would the aliases be able to be abused with Unicode? I may just be missing some obvious examples but I can't think of any.
I'm assuming that most people would be using !save
as an admin command anyway which would greatly reduce the chance that users will abuse it.
from mumbledj.
I just added song caching options. I may implement some of the other ideas later, but I think this will at least solve some of the hanging problems.
from mumbledj.
Related Issues (20)
- The audio download for this video failed. <the video> has likely not generated the audio files for this track yet. HOT 2
- Problem with youtube links HOT 2
- panic: runtime error: slice bounds out of range HOT 10
- Pine64 config file and command arguments ignored. HOT 9
- Bot crashed after mumble restart HOT 4
- [Feature Request] Default Playlist File HOT 3
- Queue not playing next songs and bot partially responding to commands HOT 17
- Disconnecting right after connecting HOT 15
- Soundcloud plays only the first song HOT 2
- [error] - certificate signed by unknown authority HOT 3
- configuration file set to avconv not looking for avconv HOT 6
- Question about server certificates. HOT 5
- Go Panic HOT 2
- Go Panic (second edition) HOT 4
- Skip feature HOT 2
- Continuous playback/loop feature HOT 1
- Go panic (unknown edition) HOT 3
- Go Panic (dual edition)
- Support For MultiUser Environments HOT 1
- MumbleDJ will not take commands or read configs (intel based system) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mumbledj.