perf-custom-rows - Optimize TMDb enrichment for MDBList custom rows - #305
Merged
RadicalMuffinMan merged 2 commits intoSep 30, 2026
Merged
RadicalMuffinMan merged 2 commits into
RadicalMuffinMan merged 2 commits into
Conversation
- Only query TMDb during MDBList row resolution when an item is missing a poster, or for the top 50 items if missing a backdrop. - Avoids hundreds of redundant parallel TMDb requests on large lists where MDBList already provides poster paths via append_to_response=poster. - Applied to both Jellyfin (CustomRowFetchService) and Emby (CustomRowService).
Build SuccessfulBoth plugins compiled against .NET 8, and both test suites passed.
|
…cache after the client gives up, have a retry join a resolution that's already running, and drop the top-50 enrichment filter so rows past 50 keep their backdrops
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Summary
The server side optimizations discovered while looking at Moonfin-Client/Moonfin-Core#1698 - basically we were double-fetching artwork when we didn't need to. This PR optimizes backend TMDb metadata enrichment for MDBList custom home rows on both Jellyfin and Emby plugins. TMDb queries are now only dispatched if an item is missing a poster, or for the top 50 items if missing a backdrop. This avoids flooding TMDb with hundreds of redundant parallel requests on large lists where MDBList already provides poster artwork.
Related Issues
Link related issues or tickets separated by commas.
Type of Change
Area
Changes Made
List the key changes included in this PR.
string.IsNullOrEmpty(i.PosterUrl) || (i.Rank <= 50 && string.IsNullOrEmpty(i.BackdropUrl))).Client Impact
Does this need matching changes in a client repo (Core, Smart-TV, Roku)?
Compatibility
bool?, an int toint?)Testing
Describe how this change was tested.
Test Steps
server-plugin.sln, 365 tests passed) and Emby (Emby.Plugins.Moonfin.sln, 239 tests passed).Screenshots (if applicable)
Include config page screenshots or request/response samples where relevant.
Checklist