timothy
e3645a2840
feat(484): suppress the media-server sweep on projection failures; reject the ratio threshold
...
Extends MediaServerReconciliationGuard (#477 ) with a second deterministic refusal: when the
enumeration that produced the incoming set silently dropped items whose projection THREW, the
file-not-found sweep is refused. A dropped item the server did return is indistinguishable
from a deletion at the reconcile step, so a projection regression could otherwise mass-flag a
healthy library FileNotFound (which EmptyTrash then deletes permanently).
Deliberate guard-clause skips (STRM files, virtual items, unsupported types) are explicitly NOT
failures and never suppress a sweep — counting them would permanently disable reconciliation for
any library holding a single STRM file.
The ratio / missing-fraction threshold is REJECTED, not deferred: it is a two-sided heuristic
with no tunable default and no telemetry, and the failure it approximates is exactly observable
via the projection-failure count (a genuine bulk deletion produces zero failures).
Seam is deliberately narrow — the private ProjectTo* contract inside each api client changed from
Option<T> to MediaServerProjectionResult<T> (projected/skipped/failed), the paged helper counts
IsFailure in one place, and the scanner reads it through an optional trailing
MediaServerProjectionFailureCounter on only the five library-level methods that feed a sweep.
The counter is per-enumeration state created by the scanner, never a field on an api client.
fixes #484
2026-07-25 16:36:35 +02:00
timothy
1b7b0e549a
feat(api): add media sources and scan status endpoints ( #103 #106 )
2026-07-03 23:02:58 +02:00
Jason Dove and GitHub
0d301df5e8
remove external dependencies (bugsnag, trakt) ( #2840 )
...
* remove bugsnag
* remove trakt client id (that will expire)
2026-02-26 10:43:48 -06:00
Jason Dove and GitHub
a2d023ee69
local scanner artwork cleanup ( #2778 )
...
* move plex artwork removal to its own repository
* clean up old local movie artwork
* clien up old music video/artist artwork
* clean up old remote stream artwork
* clean up old song artwork
* clean up old show artwork; properly update season artwork
2026-01-16 10:23:26 -06:00
Jason Dove and GitHub
85e25ca6ea
add channel start time template data ( #2698 )
...
* add channel start time template data
* rename
2025-12-03 10:16:09 -06:00
Jason Dove and GitHub
54606c76f9
framerate improvements ( #2692 )
...
* framerate improvements
* fixes
2025-12-02 12:20:09 -06:00
Jason Dove and GitHub
ec0d8ea6ac
work around sequential schedule validation limit ( #2655 )
...
* remove readalltext
* remove unused method
* remove fileexists
* remove folderexists
* remove readalllines
* remove fake local file system
* show playlist name in playout build errors
* add basic sequential schedule validator tests
* work around sequential schedule validation limit
2025-11-24 12:08:43 -06:00
Jason Dove and GitHub
d88e721d2f
optimize database calls related to search index ( #2645 )
2025-11-13 13:27:37 -06:00
Jason Dove and GitHub
1e0bba0dc6
allow custom song background images ( #2632 )
...
* allow custom song background images
* allow custom missing album art
2025-11-11 10:40:45 -06:00
Jason Dove and GitHub
2b0079fedc
allow graphics elements with yml and yaml extension ( #2617 )
2025-11-09 13:40:34 -06:00
Jason Dove and GitHub
e6824cf251
graphics engine: add scaled resolution and place within source content ( #2606 )
2025-11-06 14:15:55 -06:00
Jason Dove and GitHub
b24617fe7c
add some graphics engine template data fields ( #2586 )
...
* move resolution out of media item template data key
* add some media item template data
2025-11-01 08:29:56 -05:00
Jason Dove and GitHub
f7c699248c
fix collection and network scanners ( #2557 )
2025-10-22 08:59:06 -05:00
Jason Dove and GitHub
626048f9c3
change how scanner and main process communicate ( #2555 )
...
* report scanner progress using api
* process scanner search index updates through api
* update changelog
* update dependencies
2025-10-21 15:08:49 -05:00
Jason Dove and GitHub
889904e70d
fix management of fmp4 init segments ( #2546 )
2025-10-18 22:52:45 -05:00
Jason Dove and GitHub
e3d07050bf
graphics element template data improvements ( #2511 )
...
* add other video template data
* add path and related functions
2025-10-10 13:47:18 -05:00
Jason Dove and GitHub
07a55da76e
process graphics element yaml files with scriban ( #2410 )
...
* add content rating to media item template
* process graphics element yaml files with scriban
2025-09-13 03:04:46 +00:00
Jason Dove and GitHub
8cc0d30c0e
add some template helper functions for text elements ( #2312 )
2025-08-13 18:50:04 +00:00
Jason Dove and GitHub
2cb0d12701
load a configurable number of epg entries for text graphics ( #2305 )
...
* wip
* load a configurable number of epg entries for text graphics
* cleanup
2025-08-12 21:00:55 +00:00
Jason Dove and GitHub
44ec0f8a0f
add more template data to text graphics element ( #2304 )
2025-08-12 14:33:52 +00:00
Jason Dove and GitHub
5c43ae47b1
add basic remote stream library ( #2175 )
...
* initial remote stream library support; scanning seems to work ok
* flood schedule remote streams kind of works
* switch remote stream definitions to yaml files
* implement remote stream script playback
* update changelog
2025-07-20 16:10:32 +00:00
Jason Dove and GitHub
7e30444857
dependencies and code cleanup ( #2117 )
...
* fix validation in new form layout
* pin mediatr to last oss version
* update dependencies
* cleanup code in core
* cleanup code in ffmpeg
* cleanup code in infra
* cleanup code in scanner
* cleanup code in application
* cleanup main code
* cleanup test code
* solution-wide code cleanup
2025-07-06 15:56:17 +00:00
Jason Dove and GitHub
f80069bb97
add custom channel stream selector system ( #2076 )
...
* add some basic channel stream selector models
* change windows ffmpeg url
* implement basic stream selection
* fixes
2025-06-27 03:00:59 +00:00
Jason Dove and GitHub
56a58d7a84
fix missing audio and subtitle language codes ( #1822 )
2024-07-27 20:44:49 -05:00
Jason Dove and GitHub
087901d177
adjust block unique constraint ( #1634 )
...
* upgrade dependencies
* allow blocks with same name in different groups
* code cleanup
2024-03-05 10:39:06 -06:00
Jason Dove and GitHub
f8c4f44216
add basic image library support ( #1608 )
...
* add basic image library support
* add image page
* update changelog
2024-02-11 11:24:19 -06:00
Jason Dove and GitHub
60b479e330
scanning fixes ( #1606 )
...
* fix music video fallback metadata
* properly re-scan song metadata
2024-02-10 06:44:27 -06:00
Jason Dove and GitHub
9dabffbac1
support more formats for show fallback metadata ( #1514 )
2023-11-21 15:52:25 -06:00
Jason Dove and GitHub
245c4ec359
code analysis and cleanup ( #1411 )
...
* cleanup scanner project
* cleanup infrastructure projects
* cleanup ffmpeg project
* cleanup core project
* cleanup app project
* cleanup main project
* update dependencies
* code cleanup
2023-09-03 06:23:42 -05:00
Jason Dove and GitHub
03df2a6c8a
overdue code cleanup ( #1271 )
2023-05-10 13:18:18 -05:00
Jason Dove
a54e37a648
proper fix
2023-04-26 19:35:40 -05:00
Jason Dove and GitHub
c0656114b8
ignore dot underscore files ( #1259 )
2023-04-26 11:46:38 -05:00
Jason Dove and GitHub
721f0df82a
fix library scanning with non-english season folder names ( #1222 )
2023-03-31 13:37:54 -05:00
Jason Dove and GitHub
b032e70d7e
support more local season folder names ( #1191 )
2023-03-02 20:13:34 -06:00
Jason Dove and GitHub
581aa51792
fix trash display for certain episodes ( #1184 )
...
* fix trash display for certain episodes
* fix multi-episode fallback metadata
2023-02-28 09:37:30 -06:00
Jason Dove and GitHub
9479806cb0
scanner refactoring and other cleanup ( #1082 )
...
* move subtitles provider into scanner
* move more stuff into scanner
* move nfo into scanner
* add scan subcommand
* fix a bunch of nfo build warnings
* more subcommands
* fix warnings
* cleanup logging
* remove unused code
* cleanup old ffmpeg stuff
* rename complex filter
* refactor wrapped segmenter
2022-12-31 10:57:20 -06:00
Jason Dove and GitHub
7b1edd9c54
add new scanner process ( #1080 )
...
* start moving local scans to separate process
* send progress updates to main process
* move scanners and tests
* simplify dependencies; sync search index
* commit search index more often when scanning
* support forced scan and cancellation
* use scanner process for plex libraries
* update changelog
* update dockerfiles
* fix search index for local folder scanning
* rework plex scanners
* rework scanner handlers
* emby works again
* sync jellyfin
* cleanup
* update build
* update changelog
* remove scanner dependency in pr and artifacts workflows
* fix mac sed syntax
* fix pr build
2022-12-30 12:53:05 -06:00
Jason Dove and GitHub
aeaafd2964
add scanner subtitle logging ( #1079 )
2022-12-29 06:00:00 -06:00
Jason Dove and GitHub
622fa01602
update dependencies and fix some types ( #1077 )
2022-12-28 14:21:25 -06:00
Jason Dove and GitHub
e2b3c1ce8e
properly unflag local movies that are now present on disk ( #1076 )
2022-12-28 13:41:01 -06:00
Jason Dove and GitHub
7439ded43d
normalize bit depth ( #1031 )
...
* normalize bit depth and color for nvenc
* fix hls direct
* update changelog
* add bit depth option to ffmpeg profile
2022-11-21 20:20:07 -06:00
Jason Dove and GitHub
6a640d3708
fix ogg song metadata ( #1030 )
2022-11-20 12:44:08 -06:00
Jason Dove and GitHub
8bf5e18ae5
fix nfo reader ( #995 )
...
* fix nfo reader
* fix template fade
* update dependencies
2022-10-13 05:08:41 -05:00
Jason Dove and GitHub
612b9e6524
fix scanner crash caused by invalid mtime ( #934 )
2022-08-20 19:56:37 -05:00
Jason Dove and GitHub
d66efa0a1d
prioritize container aspect ratio over stream aspect ratio ( #930 )
...
* prioritize container aspect ratio over stream aspect ratio
* use setdar filter
2022-08-16 19:57:38 -05:00
Jason Dove and GitHub
b0bd4c9fed
add ogg file formats to local song library scanner ( #914 )
...
* add ogg file formats to local song library scanner
* update dependencies
2022-08-04 16:01:17 -05:00
Jason Dove and GitHub
ba079452e2
add dff and dsf to local song library scanner ( #911 )
2022-08-03 11:01:13 -05:00
Jason Dove and GitHub
6895b9cc6b
fix search repo caching bug ( #886 )
...
* add failing test
* fix search repo bug
* update dependencies
2022-07-10 15:32:06 -05:00
Jason Dove and GitHub
9c02a6738b
fix missing trashed episodes ( #881 )
...
* fix episodes missing from trash
* cleanup
2022-06-29 15:01:49 -05:00
Jason Dove and GitHub
f349646703
apply plex episode metadata updates ( #871 )
...
* update more plex episode metadata
* update dependencies
2022-06-22 19:41:05 -05:00