andrewrk / groovebasin

Music player server with a web-based user interface.
MIT License
1.9k stars 119 forks source link

folder structure view of library #93

Open felixcode opened 12 years ago

felixcode commented 12 years ago

current view of library is not very suitable for library that music tags/info isn't very good. so maybe it's better to also provide a folder structure view from which we can choose files to play directly.

andrewrk commented 12 years ago

Good idea. This is now planned.

andrewrk commented 12 years ago

Note that until this is fixed, the library search feature also matches full file names, so if your library is organized by folder you can still type in an album or artist.

andrewrk commented 10 years ago

We're one step closer to realizing this feature with e8fa0e83a32b072f2f204b9122464dd362a7778c

Killerbb commented 10 years ago

At present it is implemented?

andrewrk commented 10 years ago

No. The closest you can get to this is:

jvehent commented 9 years ago

I just want to add my vote in for this feature. I have about 130GB of music, and very little has proper tags, but it is neatly arranged in folders. I currently use subsonic which displays the folder structure. To me, it's the one feature that blocks me from switching to groovebasin entirely.

Other than that, it's a fantastic tool! Thanks a lot for writing it.

MartNytrm commented 9 years ago

Hey guys and @andrewrk, would love to see this feature, too, because going to your library and finding things is pretty damn hard. You only can use this little:

selection_010

Features I vote for:

Thanks for Groove Basin! It's pretty unique!!

Greets

Nytrm

andrewrk commented 9 years ago

Album view is #170

nubjub commented 9 years ago

I'm thinking about switching my player system over to this, but folder / file view is what i have to have before I can do this. Do you have any insights on how this should best be implemented so that I can have a look at getting to work on it?

andrewrk commented 9 years ago

Yes. Much of the work is already done via the mpd protocol support. The server has an in memory index of the current file structure that it keeps up to date. What's left to be done is communicating this information to the client and updating the client code to use this information.

When I get home I'll elaborate on the details. You can also find me in the #libgroove freenode irc channel for live support.

andrewrk commented 9 years ago

In lib/player.js look at dbFilesByPath as well as dirs. These objects are kept up to date and contain the file system hierarchy.

In lib/player_server.js you will have to add a new subscription or modify an existing one to communicate the file system hierarchy to the client. Also take a look at the Protocol Specification for inspiration - whatever mechanism you add will have to be added to the protocol spec as well.

Once you have the server communicating data to the client, you'll have to edit src/client/app.js and probably src/public/index.html.

I hope that helps. This feature is a big undertaking; don't feel bad if it's too hard or you don't have time. I'm happy to help and answer any questions you have.