quodlibet / quodlibet

Music player and music library manager for Linux, Windows, and macOS
https://quodlibet.readthedocs.io
GNU General Public License v2.0
1.44k stars 223 forks source link

Unite listenbrainz and scrobbler plugins #3856

Open declension opened 2 years ago

declension commented 2 years ago

The proposed change

Listenbrainz support (#2397) and original scrobbling share a lot of (copy-pasted) code, but it's also diverged with some fixes and improvements happening in scrobbler but not duplicated.

Benefits of this change

DRY, etc i.e. less maintenance Further / easier support for other similar APIs should they happen

Any issues this might cause

Potential bugs creep in. Over-abstractions possible as ever.

nemethf commented 1 year ago

Would it be OK to have a configuration interface that allows the user to select a protocol first (last.fm / listenbrainz) and then provides a text field to specify the endpoint URL (last.fm, libre.fm, listenbrainz.org, local maloja server, ...)? That is it won't be possible to scrobble to two different servers at the same time. (Now it is possible if the user enables both of the plugins.)

Currently, the multi-scrobbler project does not make this possible either. But I think whoever interested in a multi-scrobbling feature should contribute there, and not to QL. That way, the multi-scrobbling feature would potentially reach a large audience.

declension commented 1 year ago

Would it be OK to have a configuration interface that allows the user to select a protocol first (last.fm / listenbrainz) and then provides a text field to specify the endpoint URL (last.fm, libre.fm, listenbrainz.org, local maloja server, ...)? That is it won't be possible to scrobble to two different servers at the same time. (Now it is possible if the user enables both of the plugins.)

Yes, I was thinking about the same thing recently. I think it's fine, and if somehow lots of users do post about not being able to do both (I mean, they couldn't do both currently as it's broken due to #3864). But maintaining both is too much hassle so any compromises to get both of these into one plugin soon would be goo :+1:

Currently, the multi-scrobbler project does not make this possible either. But I think whoever interested in a multi-scrobbling feature should contribute there, and not to QL. That way, the multi-scrobbling feature would potentially reach a large audience.

Yes, that does look quite cool but if we keep the current plugin in (and fixed), it needs maintaining - so longer-term solutions won't cut it. Also, it's a JS project so no direct integration, and running a server feels like too much hassle for most people