Small fix where older installs of Jellystat used the start-app command in the docker container. start-app has been changed to be a duplicate of start and the old functionality moved to a command called start-dev
URL cleanup code added to validateSettings endpoint to handle certain use-cases
Fix for Error 403 on First time setup by dynamically checking the config status and allowing the config status to exist at multiple stages of the setups vs at the last stage of configuration
Fix sync logs missing as logging was not awaited on insert
Cleaned up some logging code in the db class
Forgot to add archived items exclusion when tallying stats
This feature has been extended to seasons and seasons/episodes as some episodes may be archived but not the entire show
Cleaned up Jellyfin calls and stored them in a Jellyfin Class to be called globally. Also added better error handling for jellyfin api network responses
Reduced config error handling by moving this code to a central Config class
refactored https instance of axios into a new class reducing the need to recreate the https agent where needed
General comments and code clean-up
Removed Data Debugger as it hasn't been maintained and no longer servers a purpose
CSS fixes on session card
Fixed some logic that was causing show items to sync during partial sync but then get removed when the clean-up script was run.
This was due to the Show filter used to reduce the number of shows scanned but a scenario was found where:
Recently added returns an episode and not the corresponding series item. The filter would then prevent the episode from syncing as the filter excluded it based on the missing Show ID. Then once the item info sync ran, the item info would insert without the corresponding item id.
The cleanup looks for this scenario where theres info items without corresponding items and cleans them out.
Now items inside a library will only be archived if the library is deleted.
If it was excluded but still exists on jellyfin then the items inside wont be archived
Amended bulk upload conflict query for libraries table to revert archived bit to false if data is updated
added archiving flag to libraries. If a library is deleted or excluded the entire library and its contents are archived when the sync process is run
Added archive toggle in libraries to show/hide archived libraries
Still need to add functionality to bulk purge archived data for a library or for selected items in the library.
cleaned up duplicate statement in migration 46
uncommented backwards navigation code when purge completes
Added Sync feature to only sync Recently Added Items that don't exist in the database (this will not update existing data), default interval now set to 15 Minutes
Renamed existing sync to Full sync (should function exactly the same), default interval now set to 1 day
Reworked handling of items no longer on jellyfin. Items are no longer deleted but are now marked as archived so that we can still view their items when looking at Playback Activity.
Added options to purge Archived data. This will either purge just the item (including seasons and episodes if its a show) or the item plus all related watch activity
Jellyfin reports playback for live tv with an end time of 00:00:00, replicating this in Jellystat.
Also add the current program name to the now playing item
Also some aesthetic changes to ensure playback counter row is always at the bottom of the card
Changed Dockerfile as previos file was failing to build consistently
removed some unused packages
added compression to json payloads
changed vite ports to 3000 to not break existing builds
backend and frontend both use port 3000 now