Commit Graph

219 Commits

Author SHA1 Message Date
bitr8 027bf11474 fix(logging): downgrade library mismatch message to debug level (#305)
The "Target library X not found or is not a movie/TV library" message
was logged at warn level, but this is a normal scenario when a collection
targets a specific library type. This caused log spam during syncs.

Fixes #265

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-05 23:46:28 +13:00
bitr8 5a19db7efe fix(overlays): use uniform scaling for non-standard poster aspect ratios (#306)
Posters with non-standard sizes (e.g., 1000x1426 instead of 2:3 ratio)
caused overlay elements to drift outside poster edges due to separate
X/Y scaling.

Changed to uniform scaling with centering offsets:
- `scale = Math.min(scaleX, scaleY)` ensures overlays stay within bounds
- Offsets center the template area on non-standard posters
- Updated all render methods for consistency
- Recalculate dimensions after safety resize

Fixes #297

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-05 23:38:42 +13:00
Tom Wheeler 8e105d93c2 fix(collection-posters): exclude items without tmdb poster path in content grid
fix #288
2026-01-05 23:30:37 +13:00
Tom Wheeler e2ebf90db4 fix(placeholders): ensure placeholder days ahead is respected for non-coming soon collections
re #253, re #268
2026-01-05 23:16:36 +13:00
Tom Wheeler 9788b43fe6 chore(placeholders): fix form validation for placeholder root folders 2026-01-05 23:16:33 +13:00
Tom Wheeler fecdfb8bba feat(placeholders): placeholder folders can now be created per-library
changes from global movie/tv root folders to per-library, including migration

fix #251, fix #252
2026-01-05 01:54:33 +13:00
bitr8 70eb9091cf fix(overlays): return episodeNumber from fetchReleaseDateInfo for countdown overlays (#302)
The episodeNumber field was being extracted from TMDB's next_episode_to_air
but not included in the return object, causing {episodeNumber} in overlay
templates to always show 1 (from Plex item.index) instead of the upcoming
episode number.

Fixes #290

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-05 01:30:25 +13:00
Tom Wheeler 9395447089 fix(placeholders): ensure movie placeholder parent folders are deleted on cleanup 2026-01-04 15:52:41 +13:00
Tom Wheeler af701fc045 fix(placeholders): add check for plex poster, apply TMDB poster if not present 2026-01-04 14:05:18 +13:00
bitr8 5daf4fe78e fix(collections): filter daily shows from Coming Soon collections (#278)
Skip series with seriesType='daily' (soaps like EastEnders, Coronation Street)
as they always have upcoming episodes which pollutes the collection.

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-03 22:15:40 +13:00
bitr8 37591405ef perf(overlays): add TMDB poster caching and fix race conditions (#277)
P0 Critical fixes:
- Add TMDB poster file cache with 7-day TTL (reduces API calls by ~99%)
- Add per-job TMDB URL cache with Promise coalescing for concurrent requests
- Add per-library mutex lock to prevent concurrent overlay processing
- Fix variable shadowing where passed tmdbId was ignored

P1 High priority fixes:
- Fix silent failure path - propagate errors from base poster failures
- Add cache cleanup at job start to prevent stale data

P2 Medium priority fixes:
- Fix neq condition evaluation for undefined/null fields
- Handle rejected promises in URL cache (remove on failure)

---------

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
Co-authored-by: Tom Wheeler <thomas.wheeler.tcw@gmail.com>
2026-01-03 22:14:12 +13:00
Basti Qdoba cc9dc828d1 feat(overlays): add Radarr/Sonarr tag support for overlay conditions (#276)
Enables users to conditionally apply overlays based on Radarr/Sonarr tags.
Allows dynamic overlays based on audio languages or custom tagging schemes.

Implements feature request #272
2026-01-03 19:02:20 +13:00
Tom Wheeler c30692ce0c fix(placeholders): fixes Days Ahead not being respected
fix #253, fix #268
2026-01-02 13:48:20 +13:00
Tom Wheeler 21b65fef1b chore(overlays): comment out metacritic in (future implementation)
re #250
2026-01-02 13:24:14 +13:00
Tom Wheeler b2b7e3f3f3 fix(tmdb auto-franchise): add grab missing item
fix #205
2026-01-02 04:20:09 +13:00
Tom Wheeler 74e4dabe49 fix(missing item filtering): fixes country/language exclusions
removes deprecated functions and fields

fix #262
2026-01-01 18:20:53 +13:00
Tom Wheeler 424c8f2347 fix(missing items filtering): adds RT audience as missing item filter
fix #246
2026-01-01 09:03:57 +13:00
Tom Wheeler a3fec4027f fix(tmdb posters): language option can now be selected per-library
fix #220
2026-01-01 07:36:44 +13:00
Tom Wheeler b2e645bc95 fix(overlays): add backend support for DoVi, add preset for HDR and DoVi
fix #183
2025-12-31 10:44:57 +13:00
Tom Wheeler 553e99a8a0 fix(api): fix caching of api clients causing settings to not reflect in sync 2025-12-26 08:22:39 +13:00
Tom Wheeler 858f7934a6 feat(overlays): add support for overlays based on maintainerr action
fix #233
2025-12-24 12:29:45 +13:00
Tom Wheeler ea2d07b74a fix(overlays): add date formatting options for nextSeasonAirDate
fix #231
2025-12-24 00:24:18 +13:00
Tom Wheeler 162926a798 fix(imdb): fix tvMovie media type being categorised as tv
fix #229
2025-12-24 00:16:59 +13:00
Tom Wheeler 376d83c1a2 fix(sync): prevent collections sync and overlays sync running concurrently 2025-12-23 23:51:18 +13:00
Tom Wheeler 5640152859 fix(overlays job): migrate old default job to 3am default to avoid conflitc with collections sync 2025-12-23 23:50:40 +13:00
Tom Wheeler 192ed954f8 fix(overlays): adds condition for gap in awaiting download preset template 2025-12-23 23:33:56 +13:00
Tom Wheeler 4900554cc1 fix(placeholders): extract placeholder functions, refactor sources, overlays fixes
extracts PlaceholderServices.ts functions into separate files, adds youtube cookies support.
refactor backend services into more logical structure. overlays fixes including episode titles,
other minor fixes
2025-12-23 23:31:27 +13:00
Tom Wheeler 136d0e92f3 fix(overlays): ensure poster is locked 2025-12-21 15:37:22 +13:00
Tom Wheeler 10a43afd0b fix(placeholders): fix placeholders being deleted incorrectly 2025-12-21 04:41:24 +13:00
Tom Wheeler f2e310dc98 fix(migration): moves app migration to inline typeORM
causing failed migration to v2.0.0 when the app migration had failed to convert to unified elements

fix #215
2025-12-20 12:58:40 +13:00
Tom Wheeler 4bcd1cc2c1 fix(multi source): fixes incorrect library type 2025-12-19 17:15:06 +13:00
Tom Wheeler 2cb7d07c91 fix(placeholders): fix incorrect parsing of path from plex
resulting in placeholders failing to be deleted
2025-12-19 16:14:19 +13:00
Tom Wheeler 57e3c5a804 fix(overlays): enable per library overlays sync
fix #218
2025-12-19 09:22:10 +13:00
Tom Wheeler c5af8b4226 fix(overlay editor): add text opacity for overlays 2025-12-18 22:40:35 +13:00
Tom Wheeler 6333c1a7a5 feat(overlays): add overlays test modal, allowing testing of indivdual items
displays matching overlays and raw variables

fix #212
2025-12-18 17:45:56 +13:00
Tom Wheeler 0bcd709a80 fix(titles): fix some title variables not working correctly 2025-12-18 16:39:31 +13:00
Tom Wheeler 173b35358b fix(networks): fixes multi-source networks not showing in preview
fix #209
2025-12-18 13:17:57 +13:00
Tom Wheeler c581536745 fix(overlays): update coming soon preset to include upcoming seasons 2025-12-18 13:17:57 +13:00
Tom Wheeler 788371c0f0 fix(placeholders): ensure placeholders are cleaned up in various scenarios 2025-12-17 22:37:54 +13:00
Tom Wheeler 5b0023de68 fix(filtered hubs): adds recently released episodes filtered hub 2025-12-17 19:45:17 +13:00
akina5525 f91b7faa80 feat(sources): add actor and director collections with seperators (#198)
adds new source 'Plex Library' with Auto Director and Auto Actor collection sub-types, option to configure minimum items. utilises smart collections. adds new poster template. adds separators option.

---------

Co-authored-by: Tom Wheeler <thomas.wheeler.tcw@gmail.com>
2025-12-17 00:17:23 +13:00
Tom Wheeler e04518d562 fix(placeholders): adds correct shared filtering function for tmdb coming soon 2025-12-16 19:08:22 +13:00
Tom Wheeler d1088914c4 fix(placeholders): update placeholder edition to Trailer 2025-12-16 18:41:29 +13:00
Tom Wheeler 785ba18638 fix(config): enable wallpaper, theme, and summary for pre-existing collections 2025-12-16 18:26:36 +13:00
Tom Wheeler 7739fa61f3 fix(placeholders): add placeholder cleanup to quick collection sync 2025-12-16 18:25:50 +13:00
Tom Wheeler 428a0a7426 fix(overlays): add preset templates, refine UI 2025-12-16 15:01:42 +13:00
Tom Wheeler fea363dc3e fix(overlays): refactor types, fix overlays not receiving correct source, minor fixes
fixes some sources not receiving the correct db records, resulting in adoption of items into
collection. adds immediate deletion of placeholder, check for placeholder use in other collections
before deletion. other minor fixes
2025-12-16 13:46:54 +13:00
Tom Wheeler aaf0c50848 fix(filtered hubs): ensure existing filtered hubs get updated 2025-12-16 11:45:37 +13:00
Tom Wheeler f13bba0763 feat(plex watchlist): adds plex watchlist grabbing via overseerr and radarr/sonarr 2025-12-16 11:40:39 +13:00
Tom Wheeler 43b8e0549c fix(overlays): remove incorrect application of overlays 2025-12-16 03:00:25 +13:00