ShokoAnime / ShokoServer

Repository for Shoko Server.
http://shokoanime.com/shoko-server/
MIT License
386 stars 75 forks source link

API for series refresh has misleading parameter descriptions #1030

Closed Blazewardog closed 1 year ago

Blazewardog commented 1 year ago

VERSION INFORMATION

Server Version: Daily (1/6/23)

Desktop Version: Daily (sometime in Dec)

If you've compiled your own version, please use the last commit you compiled.

LOG FILE

N/A

DESCRIPTION

I was trying to solve an issue where the local AniDB data had no episodes for a newly airing series. I went and browsed the API documentation and found /api/v{version}/Series/AniDB/{anidbID}/Refresh which appeared to be the right function.

This was the right API call, but there are some misleading parameters, namely force and immediate. Both parameter descriptions imply that any AniDB caching will be skipped and the full data will be re-grabbed from AniDB. This is not the case. Even if both parameters are set to true, the minimum redownload time defined in the settings json in the "MinimumHoursToRedownloadAnimeInfo" key is respected. The call does go and refreshes the data, but against a cached copy while not indicating this in the response or in the logs.

da3dsoul did mention on discord that this behavior likely won't get fixed to actually force the update, so I would just like some documentation updates to make what both the parameters do clearer.

STEPS TO REPRODUCE

Find a series with out of date local aniDB data / purposely make it not match. If making it not match call the refresh below before doing so Call /api/v3/Series/AniDB/{anidbID}/Refresh?force=true&immediate=true&cacheOnly=false Check and see the data is still out of date Stop Shoko Change MinimumHoursToRedownloadAnimeInfo to something small Start Shoko Call /api/v3/Series/AniDB/{anidbID}/Refresh?force=true&immediate=true&cacheOnly=false again Note how the data is now actually updated.