44 Commits

Author SHA1 Message Date
Thegan Govender
d79223bc00 Merge branch 'unstable' into main 2025-10-05 17:09:53 +02:00
T++
2f8d82e956 Merge branch 'unstable' into main 2025-09-29 23:05:31 +02:00
CyferShepard
e940ffec97 Fixes for #441 and possibly #385 2025-09-14 22:08:09 +02:00
tpp
5f7e89c969 Adaptive Polling Implementation 2025-08-29 00:32:45 +02:00
Zlendy
67bdb8dafb refactor: Replace moment with dayjs
https://day.js.org/en/
2025-06-21 00:04:11 +02:00
eeada4fbb2 feat(webhooks): add Discord webhook support and event notifications for playback and media actions 2025-05-26 10:01:30 +02:00
Félix MARQUET
280fa89c59 feat(webhooks): add support for playback and media notification events
- 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
2025-05-23 08:29:08 +00:00
CyferShepard
3673bbfcef Refactor ActivityMonitor.js for improved error handling and code readability #360 2025-04-09 18:53:28 +02:00
CyferShepard
2f31a365cd fix for possible bad logic when implementing MINIMUM_SECONDS_TO_INCLUDE_PLAYBACK env 2024-12-22 16:25:38 +02:00
zodac
097d200444 Adding environment variable to define the minimum number of seconds for a playback to be included
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'.
2024-11-27 20:04:39 +13:00
CyferShepard
fbcd7d5cbc Fix for issue #188 2024-09-04 14:21:52 +02:00
CyferShepard
186cd36c73 Possible fix for #240 2024-08-25 15:53:53 +02:00
CyferShepard
477ba27169 Fix for multiple 1 second records due to certain clients changing SessionIds every second, The Session id was removed from the filter when matching back on existing records. records in the wd table. Will revert if this negativly effects recording ability 2024-08-14 22:27:46 +02:00
CyferShepard
1078b57e17 And also the actual fix for #234 that i forgot to include 2024-08-08 23:24:21 +02:00
CyferShepard
abc289d6ba refactor: Remove console.clear() from ActivityMonitor.js 2024-08-08 23:16:19 +02:00
CyferShepard
f77a440b9d Refactored Activity monitor code to be easily debugged and to fix issue #234
Added pkName  option to deleteBulk query for Primary keys that are not called "Id"
2024-08-08 23:15:38 +02:00
CyferShepard
f70bce6b9a Version Bump 1.1.0 => 1.1.1
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
2024-06-29 22:57:33 +02:00
CyferShepard
a60d047a72 chore: Update bulk insert and update query for jf_activity_watchdog table
fix: timestamp update error in watchdog table
chore: removed legacy update code and used db bulkInsert function which has update on conflict handlers
2024-06-09 00:35:58 +02:00
CyferShepard
14dad703d3 fix: resolved bug when converting various date formats in pause update function 2024-06-06 14:09:30 +02:00
CyferShepard
a04f7c4b99 rework to make tracking more accurate based on lastPausedDate field 2024-06-02 19:06:23 +02:00
CyferShepard
b79cee28b8 Fix to address multiple insert issue #183 2024-04-30 13:57:53 +02:00
CyferShepard
b9bd668344 wd not inserting record fox + db accumulator fix 2024-04-16 08:46:27 +02:00
CyferShepard
ea7d813627 possible watchdog incorrect deduplication fix 2024-04-15 11:35:34 +02:00
CyferShepard
36e1946ce7 another fix for axtivity tracking, Movies play pause state was not being tracked 2024-04-09 19:00:23 +02:00
CyferShepard
eb0b901d89 fixes to prevent updating existing records with playback greater than item duration 2024-04-07 16:54:24 +02:00
CyferShepard
ac9e70900b Fix for pause state still counting duration when session ends 2024-04-01 20:59:01 +02:00
CyferShepard
abe845cb39 Tweaks to not process unmatched data
Activity Monitor tweaks
2024-03-17 00:39:35 +02:00
CyferShepard
772c6fe120 Made session element capture websocket data instead of generating an api call
Ws message for sessions now broadcast from the ActivityMonitor class as it also looks at this data.
2024-03-15 13:19:24 +02:00
Thegan Govender
1c823c5bd2 optimized startup flow to reduce chances of getting stuck in setup
fixed bug where invalid token returned Unable to connect to backend page
better state tracking in activity monitor page and jellydin api calls
2024-03-10 02:04:51 +02:00
Thegan Govender
fbbe3670e5 bug fix for signup process resulting in multiple config rows and getting stuck on step 2/2
API change for updating user details
added ability to edit username
fixed weird bug with vite proxy
updated translations
2024-03-09 17:48:45 +02:00
Thegan Govender
3193026c42 Added code to exclude users from activity logging (Still need to add UI interaction for it)
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
2024-02-27 16:35:39 +02:00
Thegan Govender
1c77dfb2dd Playback tracking fix 3
Fix for Series Tracking where different episode where tracking under the same episode for that show
2024-01-11 10:57:03 +02:00
Thegan Govender
a07daf84f0 Playback duration check fix 1 2024-01-08 18:27:49 +02:00
Thegan Govender
c22869ad46 Playback duration check
added check to not insert activity with a playback duration of 0 seconds
2024-01-08 16:11:06 +02:00
Thegan Govender
109674151e Playback tracking fix 2
Forgot to add Userid filter when filtering out duplicate inserts
2024-01-08 12:58:41 +02:00
Thegan Govender
2575b8bbab Playback tracking fix
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
2024-01-08 11:54:17 +02:00
Thegan Govender
af1214e763 Playback tracking rework
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
2024-01-08 09:03:40 +02:00
Thegan Govender
4cf53f6356 Fix broken first time setup
Issues resulting in a buggy first time setup due to factorized code changes have been fixed
2023-11-27 16:45:45 +02:00
Thegan Govender
0035a1cc08 Refactorized code
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
2023-11-25 14:13:16 +02:00
Thegan Govender
d81f589cb8 Sync optimisations + fix for Fetch Users 2023-10-09 16:43:49 +02:00
Thegan Govender
b40398c989 Merge branch 'unstable' of https://github.com/CyferShepard/Jellystat into unstable 2023-06-18 21:35:50 +02:00
Thegan Govender
550e1d3f7c v1.0.4.10 Beta 2023-06-18 21:02:18 +02:00
Thegan Govender
f24aedc402 Bug Fixes with Logs+proxy
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
2023-05-26 18:18:38 +02:00
Thegan Govender
3a04661915 Automated Tasks + Logging +misc
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
2023-05-25 07:21:24 +02:00