Bugzilla – Bug 14854
Awkward Intermediate menu in Rhapsody playlists
Last modified: 2009-10-20 07:40:40 UTC
If I open a Rhapsody playlist (e.g. "Rhapsody->Playlists->Top Playlists-><anything>" I get an awkward intermediate menu not containing the playlist itself but Play playlist (n tracks) Add playlist to library Playlist length: xx Created: xx Last Modified: xx This kills my playlist processing in iPeng, mainly because on the level above this menu (where the list of playlists is shown) this is tagged with "type => playlist" which is clearly not true because it doesn't contain a playlist. Contrary to the wording, "Play Playlist" will NOT play the playlist but actually open it. Could any of the following be done: - Contract this menu and the "Play Playlist" menu to a single one which contains all the commands as well as the playlist itself. I believe this is what is being done for Albums on Rhapsody - At least remove the "type => playlist" tag on the parent level but keep it for the actual playlist menu (the "Play Playlist" item; here it is correct, it's also present). Example code for one of these menus: do { my $a = [ { channel => "/c75d0c4f/slim/request", data => { base => { actions => { add => { cmd => ["myapps", "playlist", "add"], itemsParams => "params", params => { menu => "myapps" }, player => 0, }, "add-hold" => { cmd => ["myapps", "playlist", "insert"], itemsParams => "params", params => 'fix', player => 0, }, go => { cmd => ["myapps", "items"], itemsParams => "params", params => 'fix' }, more => { cmd => ["myapps", "items"], itemsParams => "params", params => 'fix', player => 0, window => { isContextMenu => 1 }, }, play => { cmd => ["myapps", "playlist", "play"], itemsParams => "params", nextWindow => "nowPlaying", params => 'fix', player => 0, }, "set-preset-0" => { cmd => ["jivefavorites", "set_preset", "key:0"], itemsParams => "params", player => 0, }, "set-preset-1" => { cmd => ["jivefavorites", "set_preset", "key:1"], itemsParams => "params", player => 0, }, "set-preset-2" => { cmd => ["jivefavorites", "set_preset", "key:2"], itemsParams => "params", player => 0, }, "set-preset-3" => { cmd => ["jivefavorites", "set_preset", "key:3"], itemsParams => "params", player => 0, }, "set-preset-4" => { cmd => ["jivefavorites", "set_preset", "key:4"], itemsParams => "params", player => 0, }, "set-preset-5" => { cmd => ["jivefavorites", "set_preset", "key:5"], itemsParams => "params", player => 0, }, "set-preset-6" => { cmd => ["jivefavorites", "set_preset", "key:6"], itemsParams => "params", player => 0, }, "set-preset-7" => { cmd => ["jivefavorites", "set_preset", "key:7"], itemsParams => "params", player => 0, }, "set-preset-8" => { cmd => ["jivefavorites", "set_preset", "key:8"], itemsParams => "params", player => 0, }, "set-preset-9" => { cmd => ["jivefavorites", "set_preset", "key:9"], itemsParams => "params", player => 0, }, }, }, count => 5, item_loop => [ { params => { favorites_title => "Play Playlist (12 tracks)", favorites_type => "playlist", favorites_url => "http://www.mysqueezebox.com/api/rhapsody/v1/opml/metadata/getAllTracksForPlaylist?playlistId=pp.25277214", isContextMenu => 1, item_id => "a3e46907.6.3.2.0.0", type => "playlist", }, text => "Play Playlist (12 tracks)", }, { actions => { add => { cmd => ["myapps", "items"], params => { favorites_title => "Add playlist to library", favorites_type => "link", favorites_url => "http://www.mysqueezebox.com/api/rhapsody/v1/opml/library/createMemberPlaylistFromPlaylist?playlistId=pp.25277214&newPlaylistName=Sly%20%26%20Robbie%20%2B%20The%20Taxi%20Gang%20V%20Purpleman%20%26%20Friends", item_id => "a3e46907.6.3.2.0.1", menu => "myapps", type => "link", }, }, go => { cmd => ["myapps", "items"], params => 'fix' }, }, addAction => "go", text => "Add playlist to library", }, { action => "none", actions => { add => { cmd => ["myapps", "items"], params => { menu => "myapps" } }, go => { cmd => ["myapps", "items"], params => 'fix' }, }, addAction => "go", style => "itemNoAction", text => "Playlist Length: 46:35", }, { action => "none", actions => { add => { cmd => ["myapps", "items"], params => { menu => "myapps" } }, go => { cmd => ["myapps", "items"], params => 'fix' }, }, addAction => "go", style => "itemNoAction", text => "Created: 2008-12-27", }, { action => "none", actions => { add => { cmd => ["myapps", "items"], params => { menu => "myapps" } }, go => { cmd => ["myapps", "items"], params => 'fix' }, }, addAction => "go", style => "itemNoAction", text => "Last Modified: 2009-05-06", }, ], offset => 0, title => "Sly & Robbie + The Taxi Gang V Purpleman & Friends", window => { windowStyle => "text_list" }, }, ext => { priority => "" }, id => 139, }, ]; $a->[0]{data}{base}{actions}{"add-hold"}{params} = $a->[0]{data}{base}{actions}{add}{params}; $a->[0]{data}{base}{actions}{go}{params} = $a->[0]{data}{base}{actions}{add}{params}; $a->[0]{data}{base}{actions}{more}{params} = $a->[0]{data}{base}{actions}{add}{params}; $a->[0]{data}{base}{actions}{play}{params} = $a->[0]{data}{base}{actions}{add}{params}; $a->[0]{data}{item_loop}[1]{actions}{go}{params} = $a->[0]{data}{item_loop}[1]{actions}{add}{params}; $a->[0]{data}{item_loop}[2]{actions}{go}{params} = $a->[0]{data}{item_loop}[2]{actions}{add}{params}; $a->[0]{data}{item_loop}[3]{actions}{go}{params} = $a->[0]{data}{item_loop}[3]{actions}{add}{params}; $a->[0]{data}{item_loop}[4]{actions}{go}{params} = $a->[0]{data}{item_loop}[4]{actions}{add}{params}; $a; }
Yeah this menu does suck, but the top-level type=playlist does work, because there is a separate playlist URL element. Maybe this is broken via CLI though. I'll rework the menu to be more like the album menu.
I don't exactly understand what you mean by "does work". You mean you can use it to play? That's ok and I can indeed play the playlist. I don't use CLI for this. What I can NOT do though, is enter the "Play playlist" submenu because iPeng sees this as a playable item within a playlist and thus doesn't descend. So it would be good if you could re-wrap that lower level into the first level playlist menu.