Cleaned up redundant code and moved around classes to be better grouped eg routes folder
Moved endpoints to other route files to better represent their actions
Removed redundant endpoints
Renamed endpoints to be more meaningful
Added API Key authorisations to utilize the API outside of Jellystat UI (Still need to document Endpoints)
Added new column to app_config to store api keys
New API Section under settings
Updated backups route name
Added option select a specific admin user as your preferred admin. This determines the userid to use when certain api calls require you to specify a user
Added settings column to the global config options. This is a json object which allows for dynamic settings without altering the table structure
Fixed dependency array on setting views to reduce ram usage on client side
Slight UI fixes
Fixed sync bug due to undefined variable
Username update fix. Existing users where not being updated
Added code to update username on activity table when compared to users table
Fixed alert message on backup/restore page
updated debugger to pull data using new changes
cleaned up backup.js
Reworked library view script,this reduces page load time by 90%
catered for new episodes in recently added feed.
Underlying work done for toggle to untrack certain libraries
General ui fixes
Backup files now limited to latest 5 files
Updated compose to have a limit on log files and sizes (Thanks @Hutch79)
Changed Tasks to run based on last successful execution time in the logs table vs an interval counter that counts from startup. This prevents an issue where if a server is restarted before the interval time, the task timer essentially resets.
Fixed User Image in session card
Disabled websocket proxy
Added Mixed Library Types to Stat cards
Fixed icons to show for relevant library types in different views
Fixed library view to show a fallback image when image fails to load
Added basic sort order to Media Items in library. Sorted by Name As. Will work on a sort order selector in next update alongside other planned features
Made changes to sync process
Data calls are now paginated at 200 items per call
Recursive search added to account for items within subfolders
Reduced API calls by recursive calls on entire library vs per library/show/season
Change to Included mixed libraries broke sync as Jellyfin does not populate a CollectionType for this library type breaking the no-null constraint. A default value of 'mixed' will be passed instead of a null.
Modified js_library_stats_overview to account for empty libraries
Modified Libraries view to cater for the above changes + added error boundaries
Reworked setup process to better detect which state of setup Jellystat is in
Removed jellyfin-api class as that now exists in the backend
Removed API_KEY from the getConfig API endpoint as a security measure
Reworked Sync Process as old process only fetched once and only added items that did not exist. Now data is refreshed accordingly (Does not apply to item information for now)
Changed Log format to specify number of items updated/inserted (Does not apply to item information for now)
Added censor toggle to password fields
Added Change Password settings
Added toggle to make login optional after first time setup
Added Error boundaries to components that rely on raw Jellyfin Data (Should help with UI errors)
Tweaked Device icon identification process to cater for ios.svg-->apple.svg + opera.svg
Changed proxy process to throw error 500 when response from urls are not of expected type
Added more error handling to prevent nodejs crash
css cleanup
added more information regarding transcoding and bitrate to session cards
Merged Log reference variables into a single object
fixes Data.filter is not a function errors as error responses where not correctly annotated with the proper http response codes. this resulted in the api call passing as status 200 and attempting to filter the error response message as a data array
Fix to address UI crash on Home and Log Page
This was due to a bad log message being rendered in a way that caused react to treat it as an object
Added Failsafes for backup and restores with logging
Added function to clean up season/episode and item information for items no longer in the DB
Added Days to Watchtime format in library view
Reduced console logging in Activity Monitor to reduce clutter
Remove Log on hashed password
New:
Added automated tasks for Sync and Backups - Backups run every 24hrs, Sync runs every 10 minutes
Added switcher to switch between 12hr/24hr time formats
Added sorting to Activity Tables
Added Version Checking and indicators
Added logging on Tasks + Log Page
Added Recently Added view to Home page
Added background images to item banners
Added Proxy for Device Images in session card
Changed Navbar to be a side bar
Fixes:
Fixed Jellyfin API returning Empty folder as library item
CSS File to add breakpoints to bootstrap-width
Other:
Various CSS changes
Temporarily removed Websockets due to Proxy Errors
Changed Activity View Playback conversion function to more accurately display Playback Duration
Backend changes to sum Playback Durations to show more accurate information in thee collapsed summarized view
Added SSL proxying on the server side so that HTTP content can be served with HTTPS content
Changed css colors from hardcoded values to use variables
Changes to websockets to be able to work with SSL/Proxies
WIP support of 12/24Hr time format in activities tables (Not working yet)
WIP added version checker to be able to check for available updates from GitHub (Not working yet)
added button to upload backups to jellystat
Added Jellystat Logo to favicon + navbar
Removed unused imports and functions in the project
Removed unnecessary console.log files