github ShokoAnime/ShokoServer v5.1.0
Shoko Server 5.1.0 Released

latest releases: v5.1.0-dev.3, v5.1.0-dev.2, v5.1.0-dev.1...
one day ago

We are excited to announce the release of the next version of Shoko Server! This new version brings a few breaking changes, lots of bug fixes among other changes, pushing us a few steps closer to completely removing the need for Shoko Desktop.

For our detailed report, we highly recommend reading the accompanying blog post.

Read the blog post on our site

Read the changelog on our site

Read the full changelog on GitHub

Breaking Changes

  • Removed ALL TvDB support from server except the TvDB IDs stored on the TMDB show/episode models and the exposed TvDB IDs sourced from said models in the APIv3. (c016174, d3df135, 1c392eb, 355183d) @revam

  • Soft deprecated TvDB support in APIv1, so we won't make Shoko Desktop throw any weird errors. (c016174)

  • Replaced the TvDB usage in APIv2 with TMDB or removed it outright, except the TvDB IDs. (c016174, 1ddec53, 0da092d, 5b95562, 99407e8, 56c383a)

  • Removed all TvDB endpoints and models in APIv3 except for the TvDB IDs exposed in the Shoko series/episode models sourced from the TMDB data. (c016174)

  • Simplified IImageMetadata in plugin abstraction. Removed IsAvailable (use IsLocalAvailable or IsRemoteAvailable), changed GetStream(bool allowLocal = true, bool allowRemote = true) to GetStream(), which will now only search for local data. no remote data, and kept the DownloadImage(bool force = false) method for now, so plugins can still instruct the core to download images not already present locally if needed, but added doc-comments for which exceptions may be thrown by the methods which plugins (and the core) should watch out for if they're using the method. (e1abf14)

  • Convert episode images from a list to the images DTO model in APIv3. (0af72dc)

  • Refactored TMDB APIv3 endpoints in one or more breaking ways. See the individual commits for more details. (5c286d4, bba2446, dec67a1)

  • Remove unused AniDB settings. (28abed7)

  • Removed old deprecated and unused endpoints in APIv3. (12a93c1)

New Additions

Minor Changes

  • Tweaked default AniDB settings. (c2d79aa, 2c48be2)

  • Improved TMDB linking logic to be more through. (a5d0e02, 69b817e, a4d1223, 5bc8be0, 3635a46, 94045ad, d9f2faa, a2dabcd, 79f8073, 10467fe, 9ab467e)

  • Store TMDB keywords and production countries. (3c66619)

  • Only check if a zip is attached to the release when checking for new Web UI releases. (32ae459)

  • Make AniDB rate limiting configurable and non-blocking, among other improvements to the provider such as fixing some incorrectly assumed AniDB UDP bans. (2e08d8c, f06a89b, 963a641, 9cc0c51, 8e41e48, eef67dd, eef67dd) @da3dsoul

  • Modified the trakt provider to use TMDB IDs for the search. And removed the stored TvDB IDs from the Trakt Show model, and added TMDB IDs to the model instead. The Trakt support may still need an overhaul though, but this is a start at least. (c016174, e97a3b7) @krbrs

  • Moved the code to check the validity of the trakt token to a job that runs every 12h instead of spamming the log every few minutes. (#1201) (c24465c) @krbrs

  • Exposed if a Shoko episode is hidden in the plugin abstraction. (c573bb9)

  • Reimplemented anime↔character/creator mappings for AniDB internally, and made them show up properly in APIv3. (#1183, #1213) (1568143, 1709eb3, 9cb88d9, 677b0e9, a480222) @krbrs

  • Added indexes for all TMDB tables, and cached more core TMDB tables. (#1216) (b4d10e6, 76f4ce0, 9f3a0c7, 8c82241, 99407e8, 61edd15, 23061b5, 56c383a) @harshithmohan @da3dsoul

  • Exposed community rating on images if available in APIv3. (e7b5cc2)

  • Improved TMDB cross-reference import endpoint. Made it remove existing cross-references for the episodes not in the import file by default, but allow the user to disable this behavior at import time if needed. Allowed optionally not downloading the missing movies/shows if the respective query parameter is set to false. (ae74297)

  • Improved concurrency when scheduling jobs. (036bb66, a165338)

  • Made it possible to search for only restricted episodes/series in the APIv3 dashboard endpoints, and also made it possible to return a list of episodes for a given time-frame, and not just the x number of next days from today. (7c76681)

  • More query options for the random image metadata endpoint in APIv3. (fb60709)

  • Exposed created/updated timestamps for episode/group in APIv3. (db935d3)

  • Exposed main AniDB anime ID for Shoko group in APIv3. (0fb3ac3)

Bug Fixes

  • Fixed width/height for IImageMetadata implementation on images served in APIv3. (b7d3a4e)

  • Hide files in "import limbo" from the unrecognized files option again, but this time properly add new include options to the monolithic file endpoint to include them separately. They're hidden/excluded by default but can be included if needed. (ac81733, 7b4273f)

  • Fixed match field of search result in internal search utility. (34a3e4a)

  • Fixed serialization error in SyncTraktEpisodeHistoryJob. (723b20a) @da3dsoul

  • Fixed default sort of files in APIv3. (b0ae6be)

  • Ensured only 1 cross-reference per company exist. (991ac1c)

  • Removed stall entry during relocation. (552259c)

  • Always remove files from the file watcher exception list after they have been moved. (4a5598f)

  • Don't send cross-references for non-existing files in APIv3. (49705f6)

  • Get top level groups for groups matching the filter. (62c49b1)

  • Search all group names. (6c2cebf)

  • Don't drop cross-references if we're unable to get the anime id and instead allow the missing id to be later retrieved. (359d7a4)

  • Fixed casing for AniDB episode UDP command. (87983f2)

  • Fixed relation depth comparison in GetAniDBAnimeJob. (d66b282) @harshithmohan

  • Use correct IDs for custom tag endpoints in APIv3. (d3fecd9)

  • Don't dispose the AniDB connection at first time setup. (eef67dd) @da3dsoul

  • Fixed restricted tags not getting saved. (#1199) (4313d61) @harshithmohan

  • Avoid the logout timer trying to acquire the lock twice. (#1200) (51e529b) @fearnlj01

  • More accurate release date selection logic for TMDB movies. (64e2e99)

  • Also resolve Shoko series links for alternate TMDB seasons. (6363c9f)

  • Fixed default settings for default renamer config. (5559ed4) @harshithmohan

  • Fixed TMDB cross-reference import endpoint in APIv3. (c66528d, f7c2fbc)

  • Check the max image limits properly for TMDB. (9808915)

  • Only add the same tag once in case we're using a newer tag. (d41fee3, 016323b)

  • Strip the ' (voice)' appearing at the end of each character name, because we only have voice-actors for anime, and no live-action actors. (2573743)

  • Get all relations in APIv3 and plugin abstraction. (9c7ce5e, b2113c2)

  • Extend ProductionCountries column length for MySQL/MariaDB & MS SQL Server. (#1206, #1207) (d91932f, ecd308b) @krbrs

  • Remove cross-references for missing TMDB episodes. (a96d01c)

  • Added a database migration and endpoint to download missing TMDB people. (#1202, #1203) (85cac43, 1f19d95, b4c1cae) @fearnlj01

  • Update datetime to datetime2 for MS SQL Server. (#1210) (5a1bc7f) @krbrs

  • Fixed setting/viewing preferred episode images. (66723fe)

  • Removed bogus '$' in TMDB role details in APIv3. (e110785)

  • Only schedule AniDB images if the entry's image path is not empty. (f76efe8)

  • Small fixes in APIv2. (9dfedb0)

  • Return plex IsAuthenticated false if token is missing. (594e954, 4b78415, 087ab5b) @harshithmohan

  • Ensured requests wait for TMDB metadata lock. (d23feaa, 717f98c)

  • Remove creator if it's not found on AniDB and also reschedule any related anime to be downloaded again. (a8b6399)

  • Lock while getting TMDB config and add fallback for when we're unable to get the config in some scenarios. (2da9d81)

  • Fix NRE when looking up images for TMDB shows. (1c30ed5)

  • Lock when updating movie collection. (80072a3)

  • Save staff cross-references for new relations. (8f9a931)

  • Ignore places virtual field on import folder when serializing it. (f2099b0)

  • Only use cross-references with files for file summaries. (ae8f31e)

  • URL decode renamer config names to allow '/'. (ad927a2) @harshithmohan

  • Always force MyList sync when ran as an action. (c4d3447)

  • Check for error code 330 in case the user's MyList is empty. (c299c67)

  • Delete any and all preferred image overrides set to an image that is being disabled. (fb9c86a)

  • Set all fields when converting the current TMDB image to IImageMetadata. (a95c83a)

  • Added missing MediaInfo codec ID mapping for 'V_AV1' → 'AV1'. (f1db5f2) @harshithmohan

Repository Changes

Don't miss a new ShokoServer release

NewReleases is sending notifications on new releases.