github ShokoAnime/Shokofin v5.0.0-dev.37
Shokofin Dev 5.0.0.37

latest releases: v6.0.5-dev.38, v6.0.5-dev.37, v6.0.5-dev.36...
pre-release22 months ago

Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!

Changes since last build:

refactor: Implement multi-structure support + more:

Implemented Multi-Structure Support

  • Finally implemented support for multiple library structures. Users can now set a base structure and override it on a per-Shoko-Series basis. With the addition of the new TMDB shows and movies structure, the library now supports three possible structures, which can be used as a whole and overridden as needed.

  • Leveraging the updated data abstraction, the plugin can now map TMDB _shows as movies_¹ or TMDB movies as shows.

  • For movies, if TMDB movie collections are enabled in Shoko, the plugin uses these collections to create either show entries or collection entries based on how your libraries and plugin settings are configured. In show-type libraries, movies are mapped as seasons/episodes, while in movie-type libraries² collections are mapped as actual collections.

  • For shows, we support using "alternate orderings" (or "episode groups" in TMDB terminology) if enabled in Shoko, allowing alternate season/episode arrangements³ if the default arrangement is not to your liking. You will have to configure the alternate ordering to use in Shoko for now, until the utility is done (||totally not foreshadowing||).

  • Added support for TMDB metadata across all structures, including studios, content ratings, production locations, tags, and genres. The settings apply globally across all structures, and metadata is excluded if any of these options are disabled, even if available.

General Changes

  • Replaced the global language code setting for images with per-entity-type, per-image-type settings. Existing settings are automatically migrated, but feel free to tweak them after the update.

  • Fixed an issue with "missing" episodes. The plugin now disables the server's unaired filter, ensuring unaired episodes populate correctly. Sorry about that.

  • Introduced an option to replace images during automatic metadata updates triggered by SignalR events (disabled by default).

  • Updated references to TMDB in the Jellyfin UI to "TheMovieDb," aligning with TMDB’s native branding and the rest of the Jellyfin UI.

  • Exposed AniDB IDs for series, seasons, episodes, and movies, enabling users to view and link to AniDB pages. No idea how compatible this is with the default AniDB plugin, but even if it's incompatible I don't think you should be using that plugin if you have this plugin installed.

Code Style & Modernization

  • Updated to use primary constructors where applicable.

  • Changed bracket placement from C# style (new line) to JS style (same line) for improved readability and reduced vertical space.

  • Standardized variable naming across the codebase. As part of the refactor, made sure the [Ss]eriesIds that were previously referring to the season info's id and not the Shoko Series' id were renamed to [Ss]easonId, among other similar changes.

  • Added missing .ConfigureAwait(false) calls on await-ed Tasks.

¹ Please don't do that, for your own mental health.
² If collections are enabled ONLY for movies and the option to separate movies from series/shows is enabled in the plugin settings.
³ Note: Alternate season images are not currently available in Shoko or TMDB.

fix: Track usage in virtual root task.

misc: Include our upstream source in images:

Include our upstream source in images provided by the plugin.

fix: Add back proper per-library media folder config removal.

misc: Add log point at the beginning of VFS generation.

fix: Use invariant culture ignore case for resolved tag children.

fix: Unmark library structure mode as expert.

misc: Add debug & experimental setting badges.

feat: Add per library structure type respect preferred image setting.

fix: Upgrade tag/genres sources to include the new TMDB sources by default.

chore: Move all extensions to their own namespace.

Don't miss a new Shokofin release

NewReleases is sending notifications on new releases.