Sorting by date added does not work as I would expect it to. In the navidrome UI the “Recently Added” option sorts the albums correctly, and DSub shows it correctly too. I tried with compatibility mode, fetch more metadata and combinations but it doesn’t work.
Logs:
Upload description: 4ntb forum
Additional information:
Also, checking the getAlbum and getAlbumList endpoints on my instance, the values returned are correct, as shown on Dsub
Reproduction steps:
Not provided
Media provider:
Subsonic
Screenshots:
Wrong order ----------------------------- Correct Order
The left image is an album playlist sorted by “Date added”. I have synced the media provider with debug enabled an uploaded the file again with the identifier 4ntb sync. Relevant logs start from 12:00. Thanks for your time.
Looking at it a bit more, looks like the search3 endpoint from navidrome returns the imported file time instead of the modification time, which is the correct one as ND_RECENTLYADDEDBYMODTIME is set. Other endpoints like, getAlbum and GetAlbumList work correctly. I guess this is not a Symfonium problem but a navidrome one, if it is not possible to use another endpoint for the sync.
All created attributes in all Subsonic responses are the same: It is the birthDate of the file, if the system supports it. If it is not supported, it is the import time.
The getAlbumList?type=newest sort order is governed by the RecentlyAddedByModTime flag: It uses created by default, but if the flag is true it uses the modTime.
So it is not really an issue with Navidrome. The results in the responses are consistent, but the behaviour of the order of the response is controlled at runtime by the that flag.
Different than other Subsonic clients, Symfonium does not use the browsing endpoints to display its “Recently Added” list, it syncs everything with search3 and uses its own logic to sort albums. As the (Open)Subsonic API does not provide modified time, I think it is not currently possible to replicate the behaviour of the “live” getAlbumList endpoint in Symfonium.
If you want, but in the end this change the behavior of one end point based on non exposed data.
IMO such option should be more global and the created returned should match the end point for consistency. Recently added is sort by date added, date added is created in Subsonic POV. Exposing modified as added everywhere would be more consistent.
Not really, the endpoint is recentlyAdded not recentlyModified, so that would allow clients to add a sort by recently modified, but that would not change the difference in recentlyAdded that return non conventional data that users do not understand.
So the real proper solution is to expose the field and a new endpoint, but even then if you want to support legacy client this still won’t work.
That’s why as a legacy option for consistency it makes more sense to expose consistent data.
But since it’s legacy let’s ignore this as you probably won’t agree with me on this
From what I see in this discussion, the problem lies in the use of the RecentlyAddedByModTime flag. I used it to keep the dates I added each album because I just recently started using navidrome, and so it used import time not mod time by default. Although I’d prefer standarization between endpoints, this is such a small thing I will just modify the database and remove the flag.