- Implement event handlers for 'playback_started', 'playback_ended' and 'media_recently_added'
- Add API routes to manage event webhook status
- Create user interface components for easy webhook configuration
- Update webhook manager to properly trigger events
- Add translations for new UI elements
Allows for filtering out playbacks that only execute for a second or two (like during testing, or when a
new episode auto-plays). The new variable is called 'MINIMUM_SECONDS_TO_INCLUDE_PLAYBACK'.
Added Dynamic API loader framework for Emby/Jellyfin switching, Emby API is still WIP, DO NOT USE as per #133
Reworked ome pages for correct url mapping of emby external links
Added IS_JELLYFIN flag to config endpoint to indicate if server is displaying Emby or Jellyfin Data
Fix for #218 Require Login set to false still displays Login Page until reload
New feat: Grouped Recently added Episodes under Seasons and Episode count on Home page. Toggle to revert back to ugrouped display will be added later
Added middleware to infer param types in API to simplify value checks, eg bool or numeric parameters
Added search on title for user activity
reworked pagination dropdown on user activity
FINALLY found and fixed issue #121
Fixed key identifier missing error in console for lastplayed page
Fix for playback tracking as i forgot to filter for activity per user, old implementation found the latest record for the item regardless of user and updated that
This rework looks for existing playback records based on the following criteria:
activity matching `NowPlayingItemId` within the last 1 hour with Playback progress <=80%
if theres a matching record:
update the PlaybackDuration to be existing PlaybackDuration + new PlaybackDuration progress
Update ActivityDateInserted to current time
Related issues: #56#116
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
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