BlitterStudio / MB_SubSonic

MusicBee SubSonic plugin
GNU General Public License v3.0
115 stars 13 forks source link

Conflating "musicFolderId" and "id" #48

Open carlreinke opened 5 years ago

carlreinke commented 5 years ago

MB_SubSonic appears to conflate music folder IDs and directory IDs. I believe the assumption that these IDs are interchangeable holds for the official Subsonic server, but the Subsonic API doesn't require it.

Specifically, the IDs returned from getMusicFolders should not be passed into the id argument of getMusicDirectory. (The API documentation for id says "A string which uniquely identifies the music folder. Obtained by calls to getIndexes or getMusicDirectory.")

Hypersonic is an example of a server that makes a clear distinction between music folder IDs and directory IDs. You can find a build here. (You'll need .NET Core and ffmpeg to run it.)

midwan commented 5 years ago

@carlreinke Thanks for the input! And nice work there with Hypersonic, I'll give it a closer look a bit later. ;) I think you might be right, I'll have to revisit this area.

tesshucom commented 5 years ago

I also agree with carl reinecke. The starting point of processing should be getIndexes.

It is desirable to arrange at the view of GUI in the order of Indexes> Index> Artist. (It does not matter if it is hierarchical display or Artist's deploy) Because the Indexes, Index, and Artist data structures are ordered, it is desirable to have logic that can reproduce the order when expanded. This has a major impact on users in countries that deal with double-byte strings. Currently, directory-based access is being performed, so I think that the display is arranged in the order obtained by sorting the strings obtained by POSIX based on UNICODE.

If this point is resolved, I think that the cooperation between the Subsonic series server and MusicBee will be improved considerably.

I think that it is well done about getting and playing playlists.

Good job! I’m sure everything is OK.