Tom Wheeler
5e33c6167d
fix(item-ordering): add A-Z and Z-A sort order options
...
fix #341
2026-01-11 08:08:17 +13:00
Tom Wheeler
44e6c163f9
fix(letterboxd): add support for /{user}/films/ URL's
...
fix #311
2026-01-11 08:06:27 +13:00
Tom Wheeler
1c21a0e7b2
feat(sort-order): add release date and date added to plex as sort order options
...
also refactors overseerrSync to use Plex Lookup
fix #187 , fix #203
2026-01-11 07:42:34 +13:00
Tom Wheeler
da1095f947
fix(overlays): add networks context
...
fix #286
2026-01-10 12:12:35 +13:00
Tom Wheeler
8073c3418c
fix(plex-libraries): fixes non-movie/show libraries being discovered inconsistently
...
fix #255
2026-01-10 00:47:24 +13:00
Tom Wheeler
3aadbf0b44
feat(overlays): add Plex User Rating condition/variable
...
fix #254
2026-01-09 23:36:12 +13:00
Tom Wheeler
5ae10be8ce
fix(collections-quick-sync): add overseerr and tmdb autoFranchise support. refactor to use ratingKey
...
refactors collection-missing-item schema to use plex ratingKey as primary key, allowing for support
for configs that create multiple collections
fix #295
2026-01-09 18:11:42 +13:00
Tom Wheeler
15d343e8ee
feat(overlays): add exists (null) boolean condition
...
fix #285
2026-01-09 01:50:23 +13:00
Tom Wheeler
d32c041faf
feat(overlays): add daysSinceAdded and daysSinceLastPlayed variables
...
fix #315
2026-01-09 01:45:57 +13:00
bitr8
4541ea145c
fix(collections): surface per-collection sync errors to UI ( #321 )
...
Collection sync errors were being logged server-side but not surfaced
to the UI, leaving users with blank error messages when multi-source
collections failed to process.
- Added lastSyncError and lastSyncErrorAt fields to CollectionConfig
- MultiSourceOrchestrator now returns error in sync result
- CollectionSyncService persists errors and doesn't mark failed syncs as successful
- Settings methods to set/clear per-collection errors
- Individual sync route also handles and persists errors
Fixes #299
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
2026-01-06 18:43:09 +13:00
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