Conversation
…e table Persist sliderId and sliderType, keep disabled stubs, and only emit builtins in homeRowOrder so Moonbase does not strip slider identity. Co-authored-by: Cursor <cursoragent@cursor.com>
Match Emby: only types that start with seerr_ belong there. Rename isSeerrCustomSliderType to isSeerrSliderType. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop listing deleted seerr_* builtins in the layout editor. Rewrite saved profiles on load/save so those type strings become seerr_slider rows. Co-authored-by: Cursor <cursoragent@cursor.com>
Turn leftover seerr_* order names into homeSections instead of dropping them, and list any discover type n >= 1. Co-authored-by: Cursor <cursoragent@cursor.com>
Build SuccessfulBoth plugins compiled against .NET 8, and both test suites passed.
|
…y layout when migrating Seerr rows into homeSections and to label stock Seerr sliders by name in the home layout editor
|
I didn’t realize when I started implementing this that the change would require coordinated updates across so many clients/components and would need this much care to avoid breaking existing behavior. Would you prefer that I reconsider the architecture and try to make the change completely additive/non-destructive instead? I think I may be able to keep the existing behavior/schema intact and add the new slider support alongside it, with a couple of compatibility workarounds where needed. It might be a little less clean internally, but if it avoids requiring immediate changes across Core, Smart-TV, Roku, etc., that may be the better trade-off. Let me know what you think before I go further with the current approach. |
Welcome to my world |
|
I went back and redid this so it's purely additive. I'll close this PR and Moonfin-Client/Moonfin-Core#1520 in favour of Moonfin-Client/Moonfin-Core#1709, and nothing needs to change here, in Smart-TV or in Roku. What changed:
So there's nothing to reimplement on Smart-TV or Roku. Sorry for the churn this caused on your side. |
|
Hey bud don't think I'm ignoring the PRs, last release had enough changes baked in and I didn't want to add on more for testing and the upcoming one I'd mostly just for bug fixes, after 2.6.1 I plan to look at more PRs and feature requests |
|
Not at all! I actually found a much better way to implement this in the meantime 😄 It’s pretty close to my first implementation, but with a cleaner approach, and we probably won’t need any changes to the Plugin at all: |
Pull Request
Summary
Supersedes draft #280. Companion client: Moonfin-Core #1520, which replaces closed Moonfin-Core #1407.
Persist Seerr discover sliders in
homeSectionsaskind: seerrSlider(sliderId/sliderType) instead of a plugin type table. List any discover typen >= 1(stock 1–12 and admin custom 13+). Unknown types stay displayable; Core decides what to fetch. One-shot migrate rewrites storedseerr_trending/seerr_shortcuts(and the other deletedseerr_*home types) into sliders, includinghomeRowOrder-only profiles so those rows are not dropped. Foreseerr is not in this PR.The Jellyfin Seerr home-layout tab only treats Seerr slider rows as Seerr, matching Emby, so Radarr/Sonarr calendars stay off that tab.
Related Issues
Type of Change
Area
Changes Made
sliderId/sliderTypeon home section config for Jellyfin and Emby.kind: seerrSliderwithout a type enum. Unbound rows (sliderTypeonly) keep a stable key.type >= 1. Shortcuts are a Moonfin-only candidate (sliderId: shortcuts), not a DiscoverSliderType.MigrateSeerrHomeSectionson load/save: rewrite deletedseerr_*types, unbind leftoverlegacy:ids, and converthomeRowOrderseerr_*names intohomeSectionssliders instead of deleting them.homeRowOrderfrom builtin sections only (skipseerr_slider).Client Impact
Does this need matching changes in a client repo (Core, Smart-TV, Roku)?
sliderId(string)sliderType(int)kind: seerrSlideronhomeSectionsentriestype: seerr_sliderwire type for those entriesCompatibility
bool?, an int toint?)The deleted
seerr_*builtin names are rewritten to sliders on load/save. Older clients that ignorekind: seerrSliderstill round-trip the extra fields.Testing
Describe how this change was tested.
feat/seerr-slider-home-kind)Test Steps
homeSectionsstoreskind: seerrSliderwithsliderId/sliderType.seerr_trendinginhomeSectionsor only inhomeRowOrder. Confirm it becomes a slider and is not dropped.Screenshots (if applicable)
Checklist
Made with Cursor