diff --git a/lib/sonos/endpoint/a_v_transport.rb b/lib/sonos/endpoint/a_v_transport.rb index 5d25a1f..bbc63f5 100644 --- a/lib/sonos/endpoint/a_v_transport.rb +++ b/lib/sonos/endpoint/a_v_transport.rb @@ -142,15 +142,13 @@ def add_spotify_to_queue(opts = {}, position = 0) return nil if opts[:type] == 'playlist' and opts[:user].nil? return nil if opts[:type] =~ /toplist_tracks/ and opts[:region].nil? - # In order for the player to retrieve track duration, artist, album etc - # we need to pass it some metadata ourselves. - didl_metadata = "<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="#{rand(10000000..99999999)}spotify%3a#{opts[:type]}%3a#{opts[:id]}" restricted="true"><dc:title></dc:title><upnp:class>object.item.audioItem.musicTrack</upnp:class><desc id="cdudn" nameSpace="urn:schemas-rinconnetworks-com:metadata-1-0/">SA_RINCON2311_X_#Svc2311-0-Token</desc></item></DIDL-Lite>" - - r_id = rand(10000000..99999999) - + r_id = rand(10000000..19999999) + upnp_class = 'object.item.audioItem.musicTrack' + case opts[:type] when /playlist/ uri = "x-rincon-cpcontainer:#{r_id}spotify%3auser%3a#{opts[:user]}%3aplaylist%3a#{opts[:id]}" + upnp_class = 'object.container.playlistContainer' when /toplist_(tracks)/ subtype = opts[:type].sub('toplist_', '') # only 'tracks' are supported right now by Sonos. uri = "x-rincon-cpcontainer:#{r_id}toplist%2f#{subtype}%2fregion%2f#{opts[:region]}" @@ -165,6 +163,12 @@ def add_spotify_to_queue(opts = {}, position = 0) else return nil end + + # In order for the player to retrieve track duration, artist, album etc + # we need to pass it some metadata ourselves. + didl_metadata = <0#{part}} + + puts message transport_client.call(name, soap_action: action, message: message) end end diff --git a/lib/sonos/version.rb b/lib/sonos/version.rb index eefe653..013033d 100644 --- a/lib/sonos/version.rb +++ b/lib/sonos/version.rb @@ -1,3 +1,3 @@ module Sonos - VERSION = '0.3.6' + VERSION = '0.3.7' end