michaelherger / lms-plugin-tidal

A TIDAL plugin to integrate with the Lyrion Music Server (fka. Logitech Media Server)
43 stars 8 forks source link

Songmix context menu item does not return and play trackradio #82

Closed Vegz78 closed 5 months ago

Vegz78 commented 5 months ago

(Pertains to iPeng, SqueezePlay etc. browser mode only, the default skinned web player interface works fine)

The newly added Songmix from the context menu just loads for a long time and eventually returns empty instead of a trackradio playlist.

From the server.log:

[24-04-30 09:22:58.8484] Slim::Networking::IO::Select::__ANON__ (130) Error: Select task failed calling Slim::Networking::Async::_async_read: Can't use an undefined value as a subroutine reference at /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/TIDAL/InfoMenu.pm line 147.
; fh=Slim::Networking::Async::Socket::HTTPS=GLOB(0x9 6a70c8)

For more details, follow the discussion from this point: https://forums.slimdevices.com/forum/user-forums/3rd-party-software/1686851-announce-tidal-local-plugin?p=1703299#post1703299

Update 2024.05.01: @philippe44 solved the loading of the trackradio, but it is still not possible to play all the songs in the Songmix.

See here below and onwards for details: https://github.com/michaelherger/lms-plugin-tidal/issues/82#issuecomment-2088187219

michaelherger commented 5 months ago

Thanks for adding an issue. But could you please create one for each of the issues, and at least copy/paste the descriptions from the forum? That would help us a lot sharing the load among devs. Thanks!

Vegz78 commented 5 months ago

Ok, I just now uploaded the server.log with the DEBUG logging enabled for the Tidal plugin using @michaelherger's provided Dropbox link.

In the meantime I learned that the Songmix context menu failure only occurs when using iPeng on my iPhone, but works OK using either the web interface or Squeezelite-X.

So, in the log you will find the following of my Tidal actions from the last restart of the server:

  1. iPeng: Search for the song "Mandalorian", then going into the context menu and trying to play a songmix. Waiting for the query to time out and return an empty playlist.
  2. iPeng: Return to the search result and playing the "Mandalorian" song, then emptying the playlist.
  3. Squeezelite-X: Search for the song "Mandalorian", then going into the context menu and playing the songmix successfully. Emptying the playlist.
  4. iPeng: Navigating to Tidal -> Home -> "Recently played". Returning empty list.
  5. Squeezelite-X: 4. iPeng: Navigating to Tidal -> Home -> "Recently played". Returning empty list.
michaelherger commented 5 months ago

FWIW: It's failing in Squeezeplay, too. Are you using the Default skin in Squeezelite-X, rather than Material?

michaelherger commented 5 months ago

@philippe44 - may I ask you to look into this? You've spent quite some time working on this. Maybe you've seen the same with Deezer?

Vegz78 commented 5 months ago

...Are you using the Default skin in Squeezelite-X, rather than Material?

Default skin.

philippe44 commented 5 months ago

@philippe44 - may I ask you to look into this? You've spent quite some time working on this. Maybe you've seen the same with Deezer?

I will. Might take a small while as I'm not home with access to my main machines

michaelherger commented 5 months ago

...Are you using the Default skin in Squeezelite-X, rather than Material?

Default skin.

That would back my theory that it's a problem with the SlimBrowse protocol. I'm pretty sure Material wouldn't work correctly either.

philippe44 commented 5 months ago

These different browsing modes are a nightmare...

philippe44 commented 5 months ago

@michaelherger: I've added the fix as a PR as you might be working on other things in //

PS: I really hate this parallel tracks between browsing modes...

michaelherger commented 5 months ago

I successfully tried to avoid InfoMenu.pm :). Thanks for this fix!

Vegz78 commented 5 months ago

For tracks in search results, when going into the context menu and choosing Song Mix, a correct selection of related songs now appears in v1.4.4(major improvement from hanging and returning empty the last time). But by either:

  1. Pressing the track name OR Play All Songs from the next context menu do not populate the playlist and play all these songs(nothing happens, playlist remains empty, but I can play single songs one-by-one), or
  2. Pressing the track name OR Play All Songs from the next context menu revives and plays a previously played playlist, even though the playlist had been emptied beforehand. (Happened only once, can not reproduce…)

Please advise if you want to look further at this and me to send logs.

Vegz78 commented 5 months ago

Error message from server.log error logging when pressing Play All Songs from a context menu of a track in the now in v1.4.4 correctly populated Song Mix:

[24-05-01 11:19:51.5377] Slim::Control::Request::execute (1885) Error: While trying to run function coderef [Plugins::TIDAL::InfoMenu::menuBrowse]: [Can't use an undefined value as a SCALAR reference at /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/TIDAL/InfoMenu.pm line 291.
]

When pressing only the text part of a song, which normally also means Play All Songs in the Song Mix list, nothing appears in the server log...

Vegz78 commented 5 months ago

When instead trying to access a further context menu for Song Mix from its context menu for playing it directly, iPeng only hangs and eventually returns empty, producing this error message:

[24-05-01 11:32:28.4293] Slim::Networking::IO::Select::__ANON__ (130) Error: Select task failed calling Slim::Networking::Async::_async_read: Can't use an undefined value as a subroutine reference at /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/TIDAL/InfoMenu.pm line 147.
; fh=Slim::Networking::Async::Socket::HTTPS=GLOB(0x9345fa0)
philippe44 commented 5 months ago

1.4.5 should fix most issues, but not long press on SongMix from iPeng

Vegz78 commented 5 months ago

V1.4.5 now working great in iPeng for playing all songs in Songmixes by pressing the text field of a song in the trackradio list.

Thanks again, @philippe44!