20 Commits

Author SHA1 Message Date
bitr8
e81b1d5952
feat(overlays): add date format options for US and UK/AU locales (#446)
* feat(overlays): add US date formats and standalone weekday option

Adds new date format options for overlay templates:
- M/D: US date without leading zeros (1/5)
- DDD MM/DD: weekday + US date (MON 12/20)
- DDD M/D: weekday + US date no padding (MON 1/5)
- DDD: standalone abbreviated weekday (MON)

Fixes #430

* feat(overlays): add UK/AU date formats without padding

* fix(overlays): use unambiguous dates in format examples

---------

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-02-06 11:14:03 +13:00
Tom Wheeler
047586c2f5 fix(overlays): fix release time to 12:00:00 (midday) to ensure accurate TZ adjustment
fix #422
2026-01-29 19:38:55 +13:00
Tom Wheeler
fad645485b fix(overlays): add 'does not contain' string operator
also adds templateData to hash comparison

fix #367
2026-01-21 05:26:50 +13:00
Tom Wheeler
cdb87f5eb9 fix(metadata): fix incorrect release date for old releases with single modern digital release date
fix #374
2026-01-19 19:06:09 +13:00
Tom Wheeler
f124211bda fix(placeholders): improve date filtering UX/logic for general lists
add "Include all released items" toggle, fix orphaned cleanup to use fixed 7-day grace period, fix
placeholder quick sync deleting tv items, other minor changes

re #336, re #268, re #253, re #307
2026-01-14 23:24:56 +13:00
bitr8
a4e6ebaecd
fix(api): Sanitize error responses to prevent information disclosure (#282)
* fix(api): Sanitize error responses to prevent information disclosure

Add error response sanitization to prevent internal implementation details
from leaking to clients in production:

- New errorResponse.ts utility with whitelist-based message filtering
- Safe message patterns allow user-friendly errors through
- Sensitive patterns block stack traces, file paths, credentials, IPs
- Development mode bypasses sanitization for debugging
- Updated global error handler to use sanitization

This prevents information disclosure while maintaining helpful error
messages for common user-facing issues like "not found" or "invalid".

* style: Fix prettier formatting

* ci: trigger rebuild

* fix(types): Add missing type parameters for Record and Set

- Add <string, string> to Record type declarations for mimeTypeMap
- Add <string> to Set constructor for assetPaths

Fixes TypeScript errors in CI.

* style: format with prettier

---------

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-11 22:24:06 +13:00
Tom Wheeler
22653c9b21 fix(overlays): add support for various plex url formats 2025-12-21 15:31:18 +13:00
Tom Wheeler
7b568909e5 fix(overlays): add further date formats
fix #216
2025-12-19 09:57:19 +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
akina5525
81de7ac38d
Add Trakt OAuth (#192)
* Adds Trakt Oauth to access private lists/watchlist

Thanks to @akina5525

---------

Co-authored-by: Tom Wheeler <thomas.wheeler.tcw@gmail.com>
2025-12-14 17:39:14 +13:00
Tom Wheeler
9e15a66ab7 feat(poster sources): adds local poster source option
posters for overlays can now be set locally. folders are created for each item in plex under
/config/plex-base-posters/{library}/{item}/. Place a .png or .jpg in the folder for that poster to
be used as the base poster for overlays. if no file is present, TMDB poster will be used.

re #144
2025-12-14 10:48:00 +13:00
Tom Wheeler
6cda7b8347 fix(overlays): add live placeholder tracking, seperate out releaseDate
fixes incorrect overlays applying by ensuring releaseDate is only used for Movie
physical/digital/theatrical+90 and TV show series premiere, adds episode and season release date
conditinos. Removes unecessary database values causing stale and incorrect metadata to be passed to
overlays. placeholders are now identified during overlay application. multiple minor fixes.

re #115, re #144, fix #175, fix #178, fix #179
2025-12-10 00:47:15 +13:00
Tom Wheeler
f459595da4 feat(plex metadata): adds hashing system for posters, wallpapers, and themes
adds migrations for collection and item metadata tables. posters (items + collections), wallpapers,
and themes now have a hash calculated based on their variables. adds check before generating poster,
comparing metadata slug to stored slug from previous sync, if both hash and slug are equal, then
generation/upload is skipped. will significantly reduce bloat from repeated uploads, and reduces
poster overlays re-run time significantly (e.g. 45 mins to 18 mins)

re #144
2025-12-04 20:19:39 +13:00
Tom Wheeler
e1a7880930 fix(overlays): add TZ offset for release date calculation
based off server time, set TZ environmental variable in docker-compose

re #115, re #144
2025-12-03 23:17:39 +13:00
Tom Wheeler
92d63185f0 fix(overlays): rework conditions to more logical structure, multiple overlays fixes
changes from AND/OR groupings to Sections allowing for a more logical building of conditions, adds
fronend modal for building conditions, fixes multiple release date issues

re #115, re #128, re #144
2025-12-03 03:38:47 +13:00
Tom Wheeler
de8ed928fe feat(poster overlays): poster Overlays for individual items can now be created
Adds new feature for Poster Overlays, create overlays in the editor under Posters -> Poster Overlays
with variables and conditions, and select which libraries the overlays should apply to

fix #144, re #115, re #128
2025-11-27 14:14:04 +13:00
Tom Wheeler
d1e7dc5c24 feat(sources): new Coming Soon Collection - Creates collection based of monitored/upcoming items
Adds new "Coming Soon" collection type, with options for Monitored in Sonarr/Radarr or Trakt
Anticipated. If a media file doesn't exist (unreleased TV Shows and Movies), a placeholder file will
be added (trailer if available). Poster overlays are added depending on its availability and
monitored status. Options for number of days to look ahead and number of days to keep item in
collection after release date. After this period the poster is reset. The placeholder file is
removed when an actual file gets added by Sonarr/Radarr.

fix #115
2025-11-03 18:41:42 +13:00
Tom Wheeler
d021a70d1b fix: prevent async discovery/collections sync, minor bug fixes 2025-09-02 20:14:56 +12:00
Tom Wheeler
805c4fabc9 feat: add version checking 2025-08-26 01:04:32 +12:00
Tom Wheeler
b1fd043554 feat: first release 2025-08-25 01:48:34 +12:00