Skip to content

feat(settings): Replace JF Recommendations with New Backends#689

Merged
RadicalMuffinMan merged 4 commits into
Moonfin-Client:mainfrom
mattsigal:feature/recommendations
Jul 3, 2026
Merged

feat(settings): Replace JF Recommendations with New Backends#689
RadicalMuffinMan merged 4 commits into
Moonfin-Client:mainfrom
mattsigal:feature/recommendations

Conversation

@mattsigal

@mattsigal mattsigal commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Adds a new setting option to choose recommendation source (local-library algorithm or online TMDb Similarity), updated call for Moonfin Recommends to support showing watched recommendations on details screens regardless of Home Screen setting, resolved Seerr/TMDb fallback poster URLs, and increased the Similar recommendations limit to 15 to fill out the grid.

Also, while testing, I was getting a billion "ListTile background color or ink splashes may be invisible" warnings, so wrapped the child of TvFocusHighlight in a transparent Material widget in preference_tiles.dart to calm them down:

child: Material(
                type: MaterialType.transparency,
                child: Builder(builder: (ctx) => widget.builder(ctx, _focused)),
              ),

Related Issues

Link related issues or tickets separated by commas.

  • Closes #
  • Fixes #
  • Related to #

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • UI/UX update
  • Documentation update
  • Build/CI change
  • Other (describe):

Changes Made

List the key changes included in this PR.

  • Added a new EnumPreferenceTile<RecommendationSystemSource> in Settings -> Personalization -> Libraries to toggle between local and TMDb similarity recommendations.
  • Refactored loadSinceYouWatchedRow in RowDataSource to extract candidate selection and scoring into a reusable public getRecommendations method.
  • Shortened the TMDb recommendations option bubble label to "TMDb Similarity" and adjusted trailing item styling (centered alignment, width constraint, vertical padding) for clean layout.
  • Passed includeWatched: true in the detail screen Similar tab request so that watched recommendation matches are not hidden.
  • Handled online Seerr/TMDb recommendation poster URLs properly on details screens.
  • Increased recommendations limit under the detail screen Similar tab to 15 to fill out default display grid.

Platform

  • Android
  • iOS
  • tvOS
  • Web
  • macOS
  • Windows
  • Linux
  • All / Shared code

Testing

Describe how this change was tested.

  • Tested on emulator / simulator
  • Tested on physical device
  • Manual testing completed
  • Not tested (explain why):

Test Steps

  1. Navigate to Settings -> Personalization -> Libraries and verify the "Recommendation System" option displays "TMDb Similarity".
  2. Open a Movie or Show detail page, select the "Similar" tab, and verify that 15 recommendations load with proper poster images (including already watched titles).

Screenshots (if applicable)

Moonfin Recommends!

Shield_Screenshot_2026-06-30_22-15-28 Shield_Screenshot_2026-06-30_22-16-00

TMDb Similarities

Shield_Screenshot_2026-06-30_22-15-13 Shield_Screenshot_2026-06-30_22-22-52

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced

…iguration

- Add settings option to choose recommendation source: local-library algorithm or online TMDb Similarity.
- Shorten recommendation labels and center trailing option bubbles in settings list tiles.
- Wrap focused settings tiles in a transparent Material widget to resolve ink splash console exceptions.
- Support showing watched items under detail screen similar tab recommendations.
- Resolve online recommendation poster images on detail screen similar tabs.
- Increase similar items display limit to 15 on detail screen grids.
# Conflicts:
#	lib/data/services/plugin_sync_service.dart
#	lib/l10n/app_en.arb
# Conflicts:
#	lib/l10n/app_localizations_en.dart
@RadicalMuffinMan RadicalMuffinMan merged commit 0f3f9a5 into Moonfin-Client:main Jul 3, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants