ListenBrainzScrobbler: Report more info to ListenBrainz
Report music service, URL, and Spotify ID to ListenBrainz. ListenBrainz accepts the music service in listen reports, in both a canonical domain format and a human-readable display name format. This commit makes Strawberry report both, for maximum flexibility. I've also set it up to report a shareable track URL for supported streaming services. I am already using this data in my homepage's "Now Playing" widget. Fixes #1768
This commit is contained in:
committed by
Jonas Kvinge
parent
e0d61223a4
commit
a5f94b608b
@@ -180,6 +180,18 @@ void ScrobblerCache::ReadCache() {
|
||||
if (json_obj_track.contains("musicbrainz_work_id"_L1)) {
|
||||
metadata.musicbrainz_work_id = json_obj_track["musicbrainz_work_id"_L1].toString();
|
||||
}
|
||||
if (json_obj_track.contains("music_service"_L1)) {
|
||||
metadata.music_service = json_obj_track["music_service"_L1].toString();
|
||||
}
|
||||
if (json_obj_track.contains("music_service_name"_L1)) {
|
||||
metadata.music_service_name = json_obj_track["music_service_name"_L1].toString();
|
||||
}
|
||||
if (json_obj_track.contains("share_url"_L1)) {
|
||||
metadata.share_url = json_obj_track["share_url"_L1].toString();
|
||||
}
|
||||
if (json_obj_track.contains("spotify_id"_L1)) {
|
||||
metadata.spotify_id = json_obj_track["spotify_id"_L1].toString();
|
||||
}
|
||||
|
||||
ScrobblerCacheItemPtr cache_item = make_shared<ScrobblerCacheItem>(metadata, timestamp);
|
||||
scrobbler_cache_ << cache_item;
|
||||
@@ -220,6 +232,10 @@ void ScrobblerCache::WriteCache() {
|
||||
object.insert("musicbrainz_disc_id"_L1, QJsonValue::fromVariant(cache_item->metadata.musicbrainz_disc_id));
|
||||
object.insert("musicbrainz_release_group_id"_L1, QJsonValue::fromVariant(cache_item->metadata.musicbrainz_release_group_id));
|
||||
object.insert("musicbrainz_work_id"_L1, QJsonValue::fromVariant(cache_item->metadata.musicbrainz_work_id));
|
||||
object.insert("music_service"_L1, QJsonValue::fromVariant(cache_item->metadata.music_service));
|
||||
object.insert("music_service_name"_L1, QJsonValue::fromVariant(cache_item->metadata.music_service_name));
|
||||
object.insert("share_url"_L1, QJsonValue::fromVariant(cache_item->metadata.share_url));
|
||||
object.insert("spotify_id"_L1, QJsonValue::fromVariant(cache_item->metadata.spotify_id));
|
||||
object.insert("length_nanosec"_L1, QJsonValue::fromVariant(cache_item->metadata.length_nanosec));
|
||||
array.append(QJsonValue::fromVariant(object));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user