spl0k / supysonic

Supysonic is a Python implementation of the Subsonic server API.
https://supysonic.readthedocs.io
GNU Affero General Public License v3.0
263 stars 58 forks source link

"Folders" not selectable in DSub #74

Open apiontek opened 7 years ago

apiontek commented 7 years ago

I've noticed that unlike Subsonic, Supysonic doesn't allow per-folder browsing. On my Subsonic 6.1.1 server, I have an Audiobooks folder, a Podcasts folder (I use manolomartinez/greg to download & tag podcasts), and a Music folder. I'll switch between them depending on what I want.

I tend to think of the "Folders" each as a Library in their own right.

Supysonic lets me add folders but seems to treat them all as one big library. DSub shows everything all jumbled together.

With Subsonic, DSub lets me pick an individual "Folder" to operate in which is much more convenient. (Additionally, although I don't have Jamstash playback working as per #58 , it does list the supysonic "folders" in its drop-down, but it also doesn't work to switch between them; it does nothing to change what I'm seeing.)

Would it be possible to add this capability to Supysonic?

spl0k commented 7 years ago

It's already there. Jamstash lists the folders, but as you already noticed the dropdown doesn't do anything. For DSub you have to disable browse via tags in the server settings.

apiontek commented 7 years ago

Strange. One doesn't need to disable "browse via tags" in settings for Subsonic, and disabling "browse via tags" causes all sorts of problems because I have things organized in ways suited to software that reads tags and browses by tags, and organized differently in my filesystem.

Having it work with "browse via tags" enabled would be ideal.

spl0k commented 7 years ago

I did some tests with DSub 5.3.5, supysonic 4d3809a835673882496dae6789a05747535c4b8d and libresonic 6.2. The same folders are defined on both servers, both got the same settings in DSub with browse via tags enabled. And they both never display the folders. On which DSub screen did you notice this behaviour?

apiontek commented 7 years ago

I'm using DSub v.5.3.5 with Subsonic 6.1 (6.1.3 now), and have just begun testing Airsonic 10.1.0. Supysonic was just updated to commit 6f713e1. (I'm unlikely to bother with libresonic, it's not seen activity since May and active devs forked to Airsonic.)

This is on the DSub Library screen for each server.

Subsonic w/Browse By Tags enabled:

Subsonic w/Browse By Tags disabled:

Airsonic w/Browse By Tags enabled:

Airsonic w/Browse By Tags disabled:

Supysonic w/Browse By Tags enabled:

Supysonic w/Browse By Tags disabled:

Preferred behavior, it would seem to me, would be Subsonic's. Airsonic is close but broken. I've submitted a ticket there.

spl0k commented 7 years ago

I did a quick comparison between API versions. In the most recent (1.16.0, with Subsonic 6.1.2) the getArtists endpoint (which lists artists according to id3 tags) accepts an optional musicFolderId parameter which didn't exist by the time of 1.8.0 (supysonic's target, Subsonic 4.7). The musicFolderId parameter seems to have been introduced with API version 1.14.0 (Subsonic 6.0). See API pages for versions 1.13.0 and 1.14.0.

Changing supysonic so it advertises itself as supporting the 1.14.0 API makes DSub display the folder selector and use the musicFolderId when picking a folder.

One strange thing is that this parameter doesn't exist for the getArtist endpoint (which lists albums by a specific artist). That would suggest that if an artist is found in two folders, you would get all its albums regardless of which folder you selected in DSub.

I'll note this as a future enhancement, but please bear in mind that even if it's in my plans, implementing other API features isn't what I'm focusing on at the moment.


Keeping a reference to your issue on Airsonic. airsonic/airsonic#616

apiontek commented 7 years ago

That makes sense! I was starting to think it might be an API difference. That is strange that getartist wouldn't honor this separation, but given the idea of using media folders for different kinds of media, it's maybe unlikely that one would have the same artist across them? (i.e. Lady Gaga is unlikely to be an artist in "Podcasts" or "Movies" media folders)

Thanks for investigating. If it's not in your project's scope, that's fair enough.