Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
chore: Add conditional ShokoApiManager injection in custom providers:
Wrapped ShokoApiManager in a preprocessor directive to ensure it is only set for .NET 9 and later, reducing the compiler warning for .NET 8 and below.
feat: Skip custom info checks in iterative mode:
Added logic to prevent processing episodes, movies, seasons, and series when the library is in iterative generation mode and items are not part of the iteration. Also made sure lookups are only performed if the provider is enabled for the specific item.
refactor: Avoid blocking calls in async contexts:
- Replace .ConfigureAwait(false).GetResult() with Task.Run() for sync callers
- Replace SemaphoreSlim.Wait() with await WaitAsync() in MergeVersionManager
- Fix .Result blocking calls on HttpContent in ShokoApiClient
chore: Remove unused import.
refactor: Use StringBuilder for string concatenation in hot paths:
- Replace string += in JoinText loop with StringBuilder
- Replace Select().Join() in content rating with StringBuilder loop
refactor: Use Lazy to defer title filtering until needed:
- Cache .Where().ToList() in Lazy for AniDB and TMDB titles
- Avoids filtering same collection multiple times when multiple providers configured
refactor: Add ConfigureAwait(false) to provider GetImageResponse methods:
- Add ConfigureAwait(false) to all provider GetImageResponse methods
- Avoids unnecessary context switches in library code
refactor: Make static Regex readonly in ImageHostUrl.
feat: Add option to display source file names instead of vfs file names.