devsnd / cherrymusic

Stream your own music collection to all your devices! The easy to use free and open-source music streaming server.
http://www.fomori.org/cherrymusic
GNU General Public License v3.0
1.03k stars 187 forks source link

Django migration #600

Closed pando85 closed 8 years ago

pando85 commented 8 years ago

I've wanted to learn Django far ago and this could be a great opportunity.

My first changes are a bower integration with django-bower.

devsnd commented 8 years ago

Hey @pando85,

Thanks for the pull request! Nice to see you want the django transition! Currently I am not to sure about that, just because I am doing django at work and I'd like to do something different in my free time :)

Unfortunately you have checked in all the JS dependencies and I cannot see the actual changes you've made, which makes it really hard for me to review the code. I will check it out later and see.

I have started it and already spent a lot of time in the rewrite, but CM already has so many features that take ages to replicate, that I want to do a slower transition. I have started to replace parts of the frontend with angular using the old backend, which is encapsulated in proper angular services. I think I have not pushed those changes yet to github.

Maybe we can workout a way to create a client that is compatible with the current backend and then reimplement the backend later? Doing frontend and backend both at the same time will take to much time and will not ever be finished I think. I know: everybody always wants write stuff from scratch, but it's really hard not to repeat the same mistakes again etc. I'd like keep CM somewhat stable, as it has gained some traction within the last year or so.

Anyway, I see you have put a lot of effort into this; We'll have to merge all this work somehow! I don't really know how to pull it off, to be honest. Any suggestions on how to work together? Maybe we should do a list of things that have to be done to get feature parity with the current CM...

pando85 commented 8 years ago

Hey @devsnd, yeah, I'm working hard on it. Only because I had free time and I didn't know nothing about django and angularJS.

I'm making a lot of changes and replicating all the features with angularJS, in this time (8 days working hard) I finally understand almost how angular works and it's so great...

I will have one week more to work on it and I hope I could finish an almost finish version. In this time if you want to help me probably the best thing it is to review the code and tell me some suggestions to improve it.

When I let it almost finish I will write you and speak about the transition(or not) to this new version. I'm very impress with angularJS and django possibilities and I hope that you like it.

I don't understand what problem do you have with JS dependencies, I added it to a plugin for django and you can install it easily but finally I don't know why I include them into the repo too. I will check it and I hope you can test this changes because I think they are great.

pando85 commented 8 years ago

Ok, I found the problem with the dependencies... It was a problem with gitignore that leaves one package without its builds. Fixed!

Edit: you can use user/pass: cherrymusic/cherrymusic and in admin zone just remove my files and export yours.

pando85 commented 8 years ago

Puf, I will like that you try this, I'm really happy with the result right now. Still missing some little things to finish like:

But it is imposible to list already added features...

pando85 commented 8 years ago

I created a docker based installation with postgres, nginx, gunicorn and redis.

pando85 commented 8 years ago

I want to ask you if you get audiotranscode working with starttime. Did you get it working?

pando85 commented 8 years ago

All almost working, still needs:

pando85 commented 8 years ago

Exists problems with tinytag and some mp3 files (few). And try to avoid transcode when input and output are the same format.

pando85 commented 8 years ago

@devsnd, did you check my work?

This is ready and I think and we can discuss what to do with this.