Releases: ShokoAnime/Shokofin
Shokofin Dev 6.0.5.15
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
misc: Tweak display text.
Shokofin Dev 6.0.5.14
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
fix: Conditionally run merge jobs.
Shokofin Dev 6.0.5.13
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
feat: Add third-party display link settings:
Added configuration options to control which third-party providers display links in the user interface. Introduced settings to limit the maximum number of links shown per provider type and an option to include extra identifier information in link names. Updated the settings page UI and frontend logic to support these new configurations.
refactor: Add json converter for partial date support:
Added JsonPartialDateTimeConverter to parse flexible date formats. Replaced manual validation in AirDate and EndDate properties to centralize logic and reduce boilerplate.
Shokofin Dev 6.0.5.12
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
feat: Add scheduled tasks for merging queued media:
- Added new scheduled task classes for episodes and movies.
- Replaced direct task factory calls with the scheduled task calls.
- Changed the post scan task to schedule the queued media tasks instead of the all media tasks.
- Updated async method signatures to use default cancellation tokens and progress reporters for cleaner code.
Shokofin Dev 6.0.5.11
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
fix: Update json property name from IsAvailable to Available.
fix: Map 'backdrops' as 'thumbnails' if no movie linked to episode:
So we can still have the 'thumbnails' separate from the series' backdrops.
Shokofin Dev 6.0.5.10
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
fix: Add alias for new image type.
Shokofin Dev 6.0.5.9
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
feat: Add IsMaybeAvailable property to Image model:
Added a new nullable boolean property IsMaybeAvailable to explicitly capture the IsAvailable field from API responses. Updated the computed IsAvailable property to prioritize this value, falling back to checking the LocalPath only when the field is absent. This ensures proper handling of explicit null values from the remote service.
Shokofin Dev 6.0.5.8
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
fix: Don't attempt to apply vfs action filter on virtual items.
Shokofin Dev 6.0.5.7
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.
Shokofin Dev 6.0.5.6
Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!
Changes since last build:
feat: Add new collect and sort debug option:
Added a new debug configuration option (VFS_CollectAndSort) that, when enabled, collects all files before processing them instead of yielding immediately. This enables sorting by series size to emit smaller series first, potentially improving VFS generation performance at the cost of increased startup time.