Commit Graph
46 Commits
Author SHA1 Message Date
dtourolleandClaude Opus 5 390146e8d4 Clean up stale Continue Watching entries
🏗️ Build Plugin / build (push) Successful in 1m43s
🧪 Test Plugin / test (push) Successful in 34s
🚀 Release Plugin / build-and-release (push) Successful in 51s
Nightly Build / nightly-build (push) Failing after 50s
Livestreams and ended broadcasts accumulated in every user's resume row
because Jellyfin saves a playback position for channel items regardless
of whether the position means anything. A livestream has nothing to
return to, so the entry stayed pinned forever.

Two parts:

- PlaybackResumeGuard, an IHostedService on ISessionManager.PlaybackStopped.
  Jellyfin saves the resume point before raising the event, so the guard
  zeroes it afterwards for livestreams. Stops new entries at the source.
- ResumeCleanupService plus a daily 4 AM task (after the 3 AM expiration
  check) for the existing backlog. Clears livestreams, resume points older
  than N days, positions under N seconds and playback past N% of runtime,
  each threshold configurable.

Only plugin-owned items are touched, matched by the SRF provider ID with a
fallback to the owning channel ID so recordings are covered too. Clearing
sets PlaybackPositionTicks to 0 and leaves Played false: nothing is deleted
and the item stays unwatched.

Config page gains the thresholds plus "Clean Up Stale Entries Now" and
"Clear All SRF Play Entries" buttons, backed by MaintenanceController
under RequiresElevation.

Also folds the duplicated urn.Contains("livestream") check in
MediaSourceFactory and RecordingService into UrnHelper.IsLivestreamUrn.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 18:55:41 +02:00
dtourolle 4b5d7e2a7f info add github cross-login info 2026-06-27 11:17:57 +02:00
dtourolle 7c76402a4a Clean up dead code, consolidate duplication, fix redundancies
🏗️ Build Plugin / build (push) Failing after 9s
🧪 Test Plugin / test (push) Successful in 1m28s
🚀 Release Plugin / build-and-release (push) Failing after 5s
Remove 9 dead methods, 6 unused constants, and redundant
ReaderWriterLockSlim from MetadataCache. Consolidate repeated
patterns into HasChapters, IsPlayable, and ToLowerString helpers.
Extract shared API methods in SRFApiClient. Move variant manifest
rewriting from controller to StreamProxyService. Make Auto quality
distinct from HD. Update README architecture section.
2026-02-28 11:34:45 +01:00
dtourolle 2631c93444 moved repo install guide to top 2025-12-20 14:32:13 +01:00
dtourolle 7f71d3419c Add repo manifest
🏗️ Build Plugin / build (push) Successful in 2m49s
🧪 Test Plugin / test (push) Successful in 1m21s
🚀 Release Plugin / build-and-release (push) Successful in 2m46s
Use title cards when non provided or is livestream
2025-12-20 14:28:39 +01:00
dtourolle 89c41842a7 Update readme 2025-11-23 14:07:25 +01:00
dtourolle 31b2402a96 more readme refinement
🏗️ Build Plugin / build (push) Successful in 2m22s
🧪 Test Plugin / test (push) Successful in 1m7s
2025-11-14 22:01:17 +01:00
dtourolle e5f82c53da Update readme (acknowledge goggin/kodi plugin, clearer arch desc, problem with main channels)
🚀 Release Plugin / build-and-release (push) Failing after 2s
2025-11-14 21:25:22 +01:00
dtourolle ac6a3842dd first commit
🏗️ Build Plugin / call (push) Failing after 0s
📝 Create/Update Release Draft & Release Bump PR / call (push) Failing after 0s
🧪 Test Plugin / call (push) Failing after 0s
🔬 Run CodeQL / call (push) Failing after 0s
2025-11-12 22:05:36 +01:00
Shadowghost 3afa1fc407 Upgrade template to 10.9.x and .NET 8 2024-10-05 17:06:23 +02:00
Anthony LavadoandGitHub 2c1143b49f Merge pull request #65 from mrnoname1000/master 2024-10-05 11:01:52 -04:00
ErikandGitHub 2ddd08221d Updated to specify that you need to place the plugin DLL into a subfolder (#71) 2024-05-19 08:08:00 -06:00
mrnoname1000andGitHub 7fe332f29c README.md: Fix sh UUID generator
And make call to head POSIX-compliant
2023-10-19 23:35:44 +00:00
Johannes KauffmannandGitHub 0cb471baa2 Fix typo in interface name (#61) 2023-06-30 18:23:54 -06:00
Tuur VanhoutteandGitHub 6495c17c7f (chore: README.md) change codeblock language to jsonc
The markdown codeblocks in the README were using `json`, which has no support for comments, making them highlighted in red. `jsonc` does have support, correctly rendering the codeblocks.
2023-04-30 23:47:45 +02:00
Matthew Strasiotto 5e63c884e8 Update README to reflect new .vscode structure 2022-04-23 20:19:25 +10:00
Patrick Farwick 28a25a426c Add an example tasks.json file 2022-01-23 11:51:22 +01:00
Patrick Farwick d943670461 Automate the setup on visual studio code
This commit describes how to setup an automation for Visual Studio Code.
The automation aims to build the plugin and then start the server and
optionally the web-client. This way, only one IDE project has to be
opened which starts all necessary dependencies.
2022-01-22 23:00:50 +01:00
ldellisola f7a179e9eb Added information about debugging plugins using Visual Studio 2022-01-22 14:12:32 +01:00
Konrad RejandGitHub 503f7e4696 Update dotnet version
Change references to dotnet 5.0 to dotnet 6.0 as the plugin template has been updated to dotnet 6.0.
2022-01-12 00:04:39 +01:00
Cody RobiberoandGitHub c6e0e3414a Merge pull request #34 from jellyfin/BaronGreenback-patch-1 2021-11-17 17:46:46 -07:00
Patrick Farwick aec58cd20d Clarify the directory to copy the plugin to 2021-10-06 23:32:06 +02:00
Patrick Farwick 7c634d9ccc Describe how to debug the plugin
Close #15
2021-10-06 23:24:58 +02:00
BaronGreenbackandGitHub b44c58f11b Update README.md
Add caveat on IServerEntryPoint
2021-05-29 11:55:59 +01:00
David e65a260699 Remove more outdated interfaces 2021-01-24 17:35:49 +01:00
David f21f3f16f8 Remove no longer available interfaces from README 2021-01-24 17:21:24 +01:00
dkanadaandGitHub cc20076fbd fix trailing space 2021-01-10 20:30:04 +09:00
dkanadaandGitHub ee82d22666 readme changes 2021-01-10 20:23:01 +09:00
crobibero a2444f776c Update README.md 2020-12-09 16:29:14 -07:00
crobibero 50468fd108 Update dotnet sdk version and remove IIsoManager 2020-12-03 07:52:32 -07:00
artiumeandGitHub 8ae0207131 add additional UUID gen methods 2020-07-17 14:49:55 -04:00
Joshua M. Boniface edff9891d8 Add licensing blurb to README 2020-06-16 12:31:21 -04:00
dkanada 888677b117 update metadata and remove deprecated checkbox method 2020-05-26 22:11:35 +09:00
Niels van Velzen 126a0eb6b6 Update to .NET 2.1 and Jellyfin 10.5 2020-03-09 21:17:32 +01:00
dkanadaandGitHub e70a1f09df Merge branch 'master' into dkanada-patch-1 2020-01-21 14:53:23 +09:00
dkanada 644088bad2 make some readme changes 2020-01-21 13:03:21 +09:00
dkanadaandGitHub 6afbcbb0eb update some documentation links 2020-01-21 12:40:24 +09:00
Anthony LavadoandGitHub 3a9152eb8b Change link to contribution guide
Changes the link to the docs to be the contribution guide, as that will be the best starting point.
2019-09-30 18:08:23 -04:00
Anthony LavadoandGitHub 36d6c99a74 Update links
Removes reference to other GitHub repo for the template, and uses the one in this repo.
Updates documentation link to new location.
2019-09-30 18:05:39 -04:00
Arun MahapatraandGitHub e3fe274d51 Fix links to example project in readme 2019-08-17 15:52:46 +05:30
LogicalPhallacyandGitHub a14d1d988d remove missing weather interface
the interfaces in general need a little more attention and love.
2019-03-25 23:58:27 -07:00
LogicalPhallacyandGitHub dbe5b1f311 Added plugin license info, fixed urls 2019-03-07 23:53:59 -08:00
Phallacy 0f54a9b89d Updated readme with dotnet template 2019-03-03 01:51:09 -08:00
Phallacy 5af09f0fd5 Updated readme with example plugin link, minor gitignore update 2019-02-21 01:59:47 -08:00
Phallacy e2f35ac6cc initial readme, gitignore 2019-02-21 00:36:01 -08:00
LogicalPhallacyandGitHub b4d5cd8bb1 Initial commit 2019-02-20 21:59:28 -08:00