github IAmParadox27/jellyfin-plugin-home-sections 3.0.0.0

5 hours ago

🔥 The Biggest Home Screen Sections Update Yet

This is the biggest Home Screen Sections update to date, bringing a substantial set of new features, fixes, localisation improvements, and internal changes alongside support for Jellyfin 12.

With this release, Home Screen Sections is moving to 3.0.0.0, marking a major step forward for the plugin and laying the groundwork for future Jellyfin versions.

✨ New Features

  • Added support for Jellyfin 12, including updated dependencies and compatibility changes required by the new Jellyfin version.
  • Added a new Collections section to display collections from the user's library.
  • Added a new Recently Added In Library section, allowing recently added media to be displayed for individual libraries, including custom libraries such as Anime (#231).
  • Added routing to supported sections, allowing section headers such as Genre to link through to their relevant Jellyfin pages.
  • Added per-section settings, allowing individual sections to have their own configurable behaviour.
  • Improved Because You Watched recommendations with a scoring system to better prioritise similar titles.
  • Added an option for Recently Added Shows to display either shows or individual episodes (#38).
  • Added an option to filter Upcoming sections based on the user's Jellyfin library access (#214, PR #249, @n00bcodr).
  • Added warnings when required plugin dependencies cannot be found (#234).
  • Added separate admin display names for sections, allowing their names to be translated without affecting the title displayed on the home screen.
  • Integrated with the new Plugin Pages PluginInterface, allowing Home Screen Sections to manage its Plugin Pages integration programmatically.

🛠️ Improvements

  • The Modular Home menu entry is now registered dynamically through Plugin Pages rather than relying on static Plugin Pages configuration.
  • The Modular Home page can now be added and removed as part of Home Screen Sections' own lifecycle, reducing the chance of stale or missing Plugin Pages entries.
  • Improved the reliability of the Modular Home link and its integration with Jellyfin's user-facing plugin settings flow. Previous releases have seen cases where the link was missing or resulted in a Page not found page.
  • Home Screen Sections now respects libraries a user has chosen to hide from their home screen, filtering them from relevant sections (PR #237, @gemcdaniel).
  • Improved compatibility with newer Jellyfin versions by updating library handling and dependency integration.
  • Improved library filtering to account for changes to VirtualFolderInfo in Jellyfin 12.
  • Improved recommendation behaviour and section configuration through the new per-section settings system.
  • Improved support for mixed-content and custom libraries across more section types.
  • Improved Home Screen Sections' handling of temporary user caches, including validation, expiry and automatic cleanup.
  • Added additional localisation keys throughout the configuration interface to make more of the plugin translatable.

🪲 Bug Fixes

  • Fixed #269 where cached lazy-load pages could be accessed using a hash created for another user. Added validation, automatic cache cleanup and expiry handling for temporary user caches.
  • Fixed #268 where the image cache directory wasn't recreated if it was removed while Jellyfin was running.
  • Fixed #258 by requiring authorization for the section registration endpoint.
  • Fixed #247 where /HomeScreen/Sections could crash when Modular Home was enabled without any globally configured sections.
  • Fixed #242 where the scroll listener could leak and gradually cause the browser to slow down during long sessions.
  • Fixed #240 where duplicated file transformations could cause sections to appear multiple times and make configured upper limits, such as Because You Watched's Upper Limit, appear to be ignored.
  • Fixed #241 where mixed-content libraries weren't supported by the majority of sections.
  • Fixed #149 where Watch Again, Because You Watched and Genre could fail to return TV series or episodes because queries filtered on parameters which weren't always populated.
  • Fixed #226 where the Genre section didn't respect the Hide Watched setting (PR #227, @jrhigueras).
  • Fixed My Requests returning unrelated library items when a user had no requested items (PR #246, @jamesmhoward1357).
  • Fixed library filtering on Jellyfin 12 where VirtualFolderInfo.ItemId is no longer populated.
  • Fixed SkiaSharp dependency compatibility with the newer Jellyfin/.NET stack.
  • Fixed the Genre section appearing as {0} Movies in the admin interface.

🌐 Translations

A large number of new settings, sections and localisation keys have been added in this release. As a result, some supported languages may not yet have translations for every new string and may temporarily fall back to English in parts of the plugin.

Translation contributions are very welcome!

💻 Developer Compatibility

The public Home Screen Sections section-registration interface remains compatible with previous releases.

  • PluginInterface.RegisterSection(JObject) is unchanged.
  • Existing plugins registering custom Home Screen Sections do not need to adopt a new registration payload for this release.
  • Home Screen Sections itself now consumes the new Plugin Pages PluginInterface to register its user-facing Modular Home page dynamically.
  • Plugins integrating with both Home Screen Sections and Plugin Pages should prefer the new programmatic Plugin Pages API rather than directly modifying Plugin Pages configuration.

⚠️ Compatibility

  • Jellyfin 10.10.7 is no longer supported.
  • Added support for Jellyfin 12.
  • Users remaining on Jellyfin 10.10.7 will need to stay on an earlier Home Screen Sections release until they upgrade Jellyfin.
  • Updated dependencies and internal APIs to align with newer Jellyfin versions.
  • Home Screen Sections requires compatible releases of File Transformation and Plugin Pages.
  • The public Home Screen Sections PluginInterface.RegisterSection contract remains compatible with previous releases.

Contributors

  • n00bcodr
  • jrhigueras
  • jamesmhoward1357
  • gemcdaniel
  • dyviknilsen
  • TheMatrixan

❤️ Support

If you enjoy using my Jellyfin plugins and want to support the time that goes into building, maintaining, and improving them, you can do so on Ko-fi.

Thank you for using the plugins and being part of the community.

Buy Me a Coffee at ko-fi.com

Don't miss a new jellyfin-plugin-home-sections release

NewReleases is sending notifications on new releases.