lms-dynamicplaylists icon indicating copy to clipboard operation
lms-dynamicplaylists copied to clipboard

[FEATURE REQUEST] Support for Album based DPLs in the new Material Home Hero section

Open mikeysas opened this issue 2 months ago • 2 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues

Is your request mentioned in the FAQ?

  • [x] I have searched the FAQ

Is your feature request related to a problem?

Nope

Describe the solution / feature you'd like

@AF-1 - adding this as a feature request as I know you don't get notified by the Forum. Understand if you prefer to move the discussion there as this is more of a heads up based on ongoing development.

Have you seen the latest update to Material Skin with the new Home Hero section (Horizontal Scrolling lists for things like New Music, Random Albums, Playlists, Radio Favorites etc.)? Michael is working with Craig on adding support for Plugins to add new lists as options for the Home Hero section. See the ongoing discussion https://forums.lyrion.org/forum/developer-forums/developers/1794833-extending-the-material-home-hero-section and the Draft PR https://github.com/CDrummond/lms-material/pull/1124.

I really see value in having the Random Albums list on the Home Screen as a cool music discovery where I can be inspired by something I have not heard in while randomly. This got me thinking that if you were interested also, it would be even better to have the option to define Home Hero list of Random Albums based on the criteria that drives an Album based DPL, but instead have it populate a user defined # of Albums into the Home Hero item. For me I would use that new DPLC Template you created for Random Albums from a Virtual Library as I like how that allows me a rich set of criteria but keeps whole Albums. However, I think any Album based DPL could be used as an option for a Home Hero list.

I don't know if this is beyond the scope of what you consider a feature for DPL / DPLC and maybe it would be cleaner to be built as a separate Plugin that shares your same code base and concepts, but I love the idea of being able to use the power you have enable with DPL / DPLC + VLC to define more refined versions of the Random Album option delivered with Material 6.0.1. For example I would define one that uses ratings 3+ and not played in over a year.

Describe alternatives you've considered

No response

LMS version

9.0.4

Plugin version

4.5.7

Anything else?

I am not sure if you are much Material user, but if you have not checked out the new Home Screen in the latest Material, you should and see if that is of interest to you. I understand if this is outside your scope / interest and of course this is all dependent on Michael and Craig completing the plugin extendability for this new Home Hero section. Thanks for considering.

mikeysas avatar Nov 08 '25 00:11 mikeysas

I must admit, I'm not a Material user. I took a look at Material 6.0.3. BTW why is the new feature called Hero?

So you're suggesting a horizontally scrollable line for albums and maybe artists based on custom sqlite queries? We'll have to wait and see how exactly the 3rd party plugin integration is implemented eventually and what parameters Material expects 3rd party plugin to provide. Will it expect plugins to provide only sqlite statements and would then go on to fetch the objects itself... or will Material expect a list of album/artist ids... All I can say for now is that I feel that creating a completely new plugin just for populating one or two Material Hero lines seems a bit excessive. But if the plugin integration works for me, I would probably give this a try.

AF-1 avatar Nov 09 '25 12:11 AF-1

BTW why is the new feature called Hero?

I have no idea??? I did not even know it was called that until, I saw the reference in Michael’s forum post that I linked above. That thread and the PR I linked may provide you more insight on the current plans for extensibility via Plugins.

I believe that the horizontal scrolling items that Craig implemented are all standard LMS queries that he calls vis JSON (but I am not the technical guy for sure). For example I am pretty sure Michael implemented new calls for him in 9.1 to support the Recently Played and Most Played as those are only available in LMS 9.1.

This is Michael’s plan initially using Spotty as an example from the thread I linked, but obviously need to watch how and if it actually gets implemented.

  • Material plugin provides a "registerHomeHeroSection(identifier, labelToken, handler)" hook for plugins to register their handler(s). "identifier" would be the internal ID used in your query (eg. "spotty-recommendations"), "labelToken" a string token to localise the title shown (or a plain string if that simplified things? Up to the plugin to localise?), the "handler" a code ref to be called by Material.
  • Material frontend lists the above options together with its own to be selected by the user
  • Material frontend queries the plugin with the new ids as additional parameters: "material-skin home-extra new:1 radios:1 spotty-recommendations:1">
  • Material plugin looks up handler with the key
  • Material plugin calls the handler with the client object and a callback to be called with the list of menu items
  • Material's callback receives a list of SlimBrowse menu items and adds them to the response

EDIT: FYI - I fixed the links in my original post which were not working when you clicked.

mikeysas avatar Nov 10 '25 00:11 mikeysas