kaaholst / android-squeezer

Remote control for your Logitech Media Server ("Squeezeserver" etc) and players.
Apache License 2.0
75 stars 15 forks source link

squeezer has no single tap 'album play' with new Deezer local plugin #814

Closed anotherstuart closed 2 months ago

anotherstuart commented 3 months ago

Hi

As you may know there has been a new Deezer plugin written due to the ending of mysqueezebox. The new plugin is here https://github.com/philippe44/lms-deezer

I am finding that I can play albums as a whole (not track by track) from any interface (e.g. web lms, jivelite, etc) but not from Squeezer.

When the album is on the screen (in a list, with three dots to the right) the only option I get is 'add to favourites' (or remove from favourites if it is already ...)

If i go into the album the tracks appear and I can play the tracks - it is just the 'playing the whole album with one tap from the three dots' that doesn't work.

Of course, I have no way of knowing if this is a Squeezer issue or a lms-Deezer issue, but hope you don't mind me trying here first.

Thanks for any info

anotherstuart commented 3 months ago

HI

Just to update this; someone else also had this problem and posted it over at the plugin Github issues https://github.com/philippe44/lms-deezer/issues/9

@Philippe44 replied

It's a problem of squeezer not respecting menu additions in LMS, afaik. I've verified on the classic, material skins and on iPeng and it works. Or you need a gesture like a long press on the icon or outside of the icon, maybe. In iPeng, it's a LP outside of the icon.

philippe44 commented 3 months ago

If that can help the dev, here is what is happening: I'm adding an itemAction for "info" in each of my album/artist/tracks lists,

typical JSON response sent by LMS w/o that "info" item my $a = { id => 3, method => "slim.request", params => [ "02:00:94:69:12:bf", ["deezer", "items", 0, 25_000, "menu:deezer", "item_id:3"], ], result => { base => { actions => { add => { cmd => ["deezer", "playlist", "add"], itemsParams => "params", params => { menu => "deezer" }, player => 0, }, "add-hold" => { cmd => ["deezer", "playlist", "insert"], itemsParams => "params", params => 'fix', player => 0, }, go => { cmd => ["deezer", "items"], itemsParams => "params", params => 'fix' }, more => { cmd => ["deezer", "items"], itemsParams => "params", params => 'fix', player => 0, window => { isContextMenu => 1 }, }, play => { cmd => ["deezer", "playlist", "play"], itemsParams => "params", nextWindow => "nowPlaying", params => 'fix', player => 0, }, playControl => { cmd => ["deezer", "items"], itemsParams => "playControlParams", params => { _index => 0, _quantity => 25_000, item_id => 3, menu => "deezer" }, player => 0, window => { isContextMenu => 1 }, }, "set-preset-0" => { cmd => ["jivefavorites", "set_preset", "key:0"], itemsParams => "presetParams", player => 0, }, "set-preset-1" => { cmd => ["jivefavorites", "set_preset", "key:1"], itemsParams => "presetParams", player => 0, }, "set-preset-2" => { cmd => ["jivefavorites", "set_preset", "key:2"], itemsParams => "presetParams", player => 0, }, "set-preset-3" => { cmd => ["jivefavorites", "set_preset", "key:3"], itemsParams => "presetParams", player => 0, }, "set-preset-4" => { cmd => ["jivefavorites", "set_preset", "key:4"], itemsParams => "presetParams", player => 0, }, "set-preset-5" => { cmd => ["jivefavorites", "set_preset", "key:5"], itemsParams => "presetParams", player => 0, }, "set-preset-6" => { cmd => ["jivefavorites", "set_preset", "key:6"], itemsParams => "presetParams", player => 0, }, "set-preset-7" => { cmd => ["jivefavorites", "set_preset", "key:7"], itemsParams => "presetParams", player => 0, }, "set-preset-8" => { cmd => ["jivefavorites", "set_preset", "key:8"], itemsParams => "presetParams", player => 0, }, "set-preset-9" => { cmd => ["jivefavorites", "set_preset", "key:9"], itemsParams => "presetParams", player => 0, }, }, }, count => 7, item_loop => [ { icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2F7cdc9f0f2af31c73d24542e2cb933045%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.0" }, presetParams => { favorites_title => "Recollection - Laurent Voulzy", favorites_type => "playlist", favorites_url => "deezer://album:1458858", icon => "https://e-cdns-images.dzcdn.net/images/cover/7cdc9f0f2af31c73d24542e2cb933045/500x500-000000-80-0-0.jpg", }, text => "Recollection\nLaurent Voulzy", type => "playlist", }, { icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Fb0bf98f792c67ae3a0fd9caf87d36438%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.1" }, presetParams => { favorites_title => "Romance - Gregory Porter", favorites_type => "playlist", favorites_url => "deezer://album:293835342", icon => "https://e-cdns-images.dzcdn.net/images/cover/b0bf98f792c67ae3a0fd9caf87d36438/500x500-000000-80-0-0.jpg", }, text => "Romance\nGregory Porter", type => "playlist", }, { icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Feb91c333fc519a9e3896ad47144bee9f%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.2" }, presetParams => { favorites_title => "Holiday At Home - Gregory Porter", favorites_type => "playlist", favorites_url => "deezer://album:191424412", icon => "https://e-cdns-images.dzcdn.net/images/cover/eb91c333fc519a9e3896ad47144bee9f/500x500-000000-80-0-0.jpg", }, text => "Holiday At Home\nGregory Porter", type => "playlist", }, { icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2F77a8293a71fe21a28d99fa2bfd6253b3%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.3" }, presetParams => { favorites_title => "Everything's Not Lost (Recorded in Paris) (Deezer Sessions) - Gregory Porter", favorites_type => "playlist", favorites_url => "deezer://album:521507832", icon => "https://e-cdns-images.dzcdn.net/images/cover/77a8293a71fe21a28d99fa2bfd6253b3/500x500-000000-80-0-0.jpg", }, text => "Everything's Not Lost (Recorded in Paris) (Deezer Sessions)\nGregory Porter", type => "playlist", }, { icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Fef6f35d279b66d5e8112adc83b35da87%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.4" }, presetParams => { favorites_title => "Antidote - Chick Corea", favorites_type => "playlist", favorites_url => "deezer://album:101230962", icon => "https://e-cdns-images.dzcdn.net/images/cover/ef6f35d279b66d5e8112adc83b35da87/500x500-000000-80-0-0.jpg", }, text => "Antidote\nChick Corea", type => "playlist", }, { icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Ff85bab63c4e50d845e1cd12f65493612%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.5" }, presetParams => { favorites_title => "San Lorenzo - Pat Metheny", favorites_type => "playlist", favorites_url => "deezer://album:471497545", icon => "https://e-cdns-images.dzcdn.net/images/cover/f85bab63c4e50d845e1cd12f65493612/500x500-000000-80-0-0.jpg", }, text => "San Lorenzo\nPat Metheny", type => "playlist", }, { icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2F1ca4d62cc6f654f65eaff63a11afff84%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.6" }, presetParams => { favorites_title => "Ses plus grandes chansons - Boris Vian", favorites_type => "playlist", favorites_url => "deezer://album:3541471", icon => "https://e-cdns-images.dzcdn.net/images/cover/1ca4d62cc6f654f65eaff63a11afff84/500x500-000000-80-0-0.jpg", }, text => "Ses plus grandes chansons\nBoris Vian", type => "playlist", }, ], offset => 0, title => "Albums", window => { windowStyle => "icon_list" }, }, };
and the same with that "info" item my $a = { id => 3, method => "slim.request", params => [ "02:00:94:69:12:bf", ["deezer", "items", 0, 25_000, "menu:deezer", "item_id:3"], ], result => { base => { actions => { add => { cmd => ["deezer", "playlist", "add"], itemsParams => "params", params => { menu => "deezer" }, player => 0, }, "add-hold" => { cmd => ["deezer", "playlist", "insert"], itemsParams => "params", params => 'fix', player => 0, }, go => { cmd => ["deezer", "items"], itemsParams => "params", params => 'fix' }, more => { cmd => ["deezer", "items"], itemsParams => "params", params => 'fix', player => 0, window => { isContextMenu => 1 }, }, play => { cmd => ["deezer", "playlist", "play"], itemsParams => "params", nextWindow => "nowPlaying", params => 'fix', player => 0, }, playControl => { cmd => ["deezer", "items"], itemsParams => "playControlParams", params => { _index => 0, _quantity => 25_000, item_id => 3, menu => "deezer" }, player => 0, window => { isContextMenu => 1 }, }, "set-preset-0" => { cmd => ["jivefavorites", "set_preset", "key:0"], itemsParams => "presetParams", player => 0, }, "set-preset-1" => { cmd => ["jivefavorites", "set_preset", "key:1"], itemsParams => "presetParams", player => 0, }, "set-preset-2" => { cmd => ["jivefavorites", "set_preset", "key:2"], itemsParams => "presetParams", player => 0, }, "set-preset-3" => { cmd => ["jivefavorites", "set_preset", "key:3"], itemsParams => "presetParams", player => 0, }, "set-preset-4" => { cmd => ["jivefavorites", "set_preset", "key:4"], itemsParams => "presetParams", player => 0, }, "set-preset-5" => { cmd => ["jivefavorites", "set_preset", "key:5"], itemsParams => "presetParams", player => 0, }, "set-preset-6" => { cmd => ["jivefavorites", "set_preset", "key:6"], itemsParams => "presetParams", player => 0, }, "set-preset-7" => { cmd => ["jivefavorites", "set_preset", "key:7"], itemsParams => "presetParams", player => 0, }, "set-preset-8" => { cmd => ["jivefavorites", "set_preset", "key:8"], itemsParams => "presetParams", player => 0, }, "set-preset-9" => { cmd => ["jivefavorites", "set_preset", "key:9"], itemsParams => "presetParams", player => 0, }, }, }, count => 7, item_loop => [ { actions => { more => { cmd => ["deezer_info", "items"], params => { id => 1_458_858, menu => 1, type => "albums" }, player => 0, window => { isContextMenu => 1 }, }, }, icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2F7cdc9f0f2af31c73d24542e2cb933045%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.0" }, presetParams => { favorites_title => "Recollection - Laurent Voulzy", favorites_type => "playlist", favorites_url => "deezer://album:1458858", icon => "https://e-cdns-images.dzcdn.net/images/cover/7cdc9f0f2af31c73d24542e2cb933045/500x500-000000-80-0-0.jpg", }, text => "Recollection\nLaurent Voulzy", type => "playlist", }, { actions => { more => { cmd => ["deezer_info", "items"], params => { id => 293_835_342, menu => 1, type => "albums" }, player => 0, window => { isContextMenu => 1 }, }, }, icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Fb0bf98f792c67ae3a0fd9caf87d36438%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.1" }, presetParams => { favorites_title => "Romance - Gregory Porter", favorites_type => "playlist", favorites_url => "deezer://album:293835342", icon => "https://e-cdns-images.dzcdn.net/images/cover/b0bf98f792c67ae3a0fd9caf87d36438/500x500-000000-80-0-0.jpg", }, text => "Romance\nGregory Porter", type => "playlist", }, { actions => { more => { cmd => ["deezer_info", "items"], params => { id => 191_424_412, menu => 1, type => "albums" }, player => 0, window => { isContextMenu => 1 }, }, }, icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Feb91c333fc519a9e3896ad47144bee9f%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.2" }, presetParams => { favorites_title => "Holiday At Home - Gregory Porter", favorites_type => "playlist", favorites_url => "deezer://album:191424412", icon => "https://e-cdns-images.dzcdn.net/images/cover/eb91c333fc519a9e3896ad47144bee9f/500x500-000000-80-0-0.jpg", }, text => "Holiday At Home\nGregory Porter", type => "playlist", }, { actions => { more => { cmd => ["deezer_info", "items"], params => { id => 521_507_832, menu => 1, type => "albums" }, player => 0, window => { isContextMenu => 1 }, }, }, icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2F77a8293a71fe21a28d99fa2bfd6253b3%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.3" }, presetParams => { favorites_title => "Everything's Not Lost (Recorded in Paris) (Deezer Sessions) - Gregory Porter", favorites_type => "playlist", favorites_url => "deezer://album:521507832", icon => "https://e-cdns-images.dzcdn.net/images/cover/77a8293a71fe21a28d99fa2bfd6253b3/500x500-000000-80-0-0.jpg", }, text => "Everything's Not Lost (Recorded in Paris) (Deezer Sessions)\nGregory Porter", type => "playlist", }, { actions => { more => { cmd => ["deezer_info", "items"], params => { id => 101_230_962, menu => 1, type => "albums" }, player => 0, window => { isContextMenu => 1 }, }, }, icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Fef6f35d279b66d5e8112adc83b35da87%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.4" }, presetParams => { favorites_title => "Antidote - Chick Corea", favorites_type => "playlist", favorites_url => "deezer://album:101230962", icon => "https://e-cdns-images.dzcdn.net/images/cover/ef6f35d279b66d5e8112adc83b35da87/500x500-000000-80-0-0.jpg", }, text => "Antidote\nChick Corea", type => "playlist", }, { actions => { more => { cmd => ["deezer_info", "items"], params => { id => 471_497_545, menu => 1, type => "albums" }, player => 0, window => { isContextMenu => 1 }, }, }, icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2Ff85bab63c4e50d845e1cd12f65493612%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.5" }, presetParams => { favorites_title => "San Lorenzo - Pat Metheny", favorites_type => "playlist", favorites_url => "deezer://album:471497545", icon => "https://e-cdns-images.dzcdn.net/images/cover/f85bab63c4e50d845e1cd12f65493612/500x500-000000-80-0-0.jpg", }, text => "San Lorenzo\nPat Metheny", type => "playlist", }, { actions => { more => { cmd => ["deezer_info", "items"], params => { id => 3_541_471, menu => 1, type => "albums" }, player => 0, window => { isContextMenu => 1 }, }, }, icon => "/imageproxy/https%3A%2F%2Fe-cdns-images.dzcdn.net%2Fimages%2Fcover%2F1ca4d62cc6f654f65eaff63a11afff84%2F500x500-000000-80-0-0.jpg/image.jpg", params => { isContextMenu => 1, item_id => "3.6" }, presetParams => { favorites_title => "Ses plus grandes chansons - Boris Vian", favorites_type => "playlist", favorites_url => "deezer://album:3541471", icon => "https://e-cdns-images.dzcdn.net/images/cover/1ca4d62cc6f654f65eaff63a11afff84/500x500-000000-80-0-0.jpg", }, text => "Ses plus grandes chansons\nBoris Vian", type => "playlist", }, ], offset => 0, title => "Albums", window => { windowStyle => "icon_list" }, }, };

I'm not an expert in interpreting these JSON results, but the idea was that my "info" action is simply an overlay to the base set of actions. If this is not what I wanted, I would have set "allAvailableActionsDefined" when building the JSON payload and the base would not have been defined.

philippe44 commented 3 months ago

I've found the problem, it's on me

kaaholst commented 3 months ago

@philippe44 I'm very sorry I haven't had time to look into this yet. Thanks very much for your efforts on the Deezer local plugin and all your contributions to LMS. I can test this next week, do I just install the latest version of the Deezer local plugin, or shall I get it from github?

kaaholst commented 2 months ago

@philippe44 I have now tested the new local Deezer plugin. Thanks a lot for this plugin and for the extra functionality you put into it.

I have found the below issues. See also my general comments about how the JSON is interpreted by Squeezer here

kaaholst commented 2 months ago

@philippe44 I see you have been busy, so I tested with the latest version of the plugin (2.80.0 per 2024-04-08). All the above have been fixed, except that Deezer results are not in global search.

That should probably be handled in another issue, so closing this.

Also, in case you are interested, there is still a more action in both base fields and item_loop, which seems unnecessary. It could be accomplished with common parts in the base fields, and completed using itemsParams. There may be some server side considerations, though, that I don't know about.