84 Commits

Author SHA1 Message Date
Tom Wheeler
e621b7554f fix(overseerr): disable notifications for overseerr users
fix #240
2026-01-15 04:31:26 +13:00
Tom Wheeler
193833ce85 fix(trakt): add support for new app.trakt.tv urls 2026-01-14 23:09:47 +13:00
Tom Wheeler
030c928844 fix(mdblist): fix mdblist for multi-source collections
fix #299
2026-01-14 11:39:06 +13:00
bitr8
01f94d5c1f
feat(imdb): add Top 250 English Movies collection type (#358)
Adds support for IMDb's Top 250 English-language movies list as a new
collection source. The list is available at /chart/top-english-movies/.

- Added TOP_250_ENGLISH_MOVIES enum value and URL mapping
- Added 'top_250_english' subtype to collection sources
- Added UI options in CollectionTypeSection and MultiSourceConfigSection
- Added title presets for the new collection type
- Auto-sets mediaType to 'movie' when selecting this subtype

Closes agregarr/agregarr#330

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-14 10:19:36 +13:00
bitr8
7c6ff6b030
fix(security): harden API clients and file operations (#300)
- overseerr.ts: Redact credentials in error logs (whitelist headers,
  sanitize URL query params, try/catch stringify with pre-truncation)
- externalapi.ts: Add catch handler to rolling cache background refresh
- animeIds.ts: Add 30s timeout and 50MB size limit with streaming
- MultiSourceOrchestrator.ts: Validate sources array before cycle_lists
- LocalPosterFolderService.ts: Validate poster downloads (size, status, type)
- placeholderManager.ts: Prevent path traversal with realpath validation

Reviewed by Codex - addresses credential leakage, unhandled rejections,
resource exhaustion, division by zero, and directory traversal vectors.

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-11 22:22:38 +13:00
bitr8
452a2be4a9
fix(placeholders): trigger Plex scan and empty trash after cleanup (#332)
When placeholders are cleaned up because real content arrived, Plex
wasn't notified and ghost entries remained in the library. This adds:

- New emptyTrash() method to PlexAPI
- Fire-and-forget scan + empty trash after placeholder cleanup
- New autoEmptyTrash setting (default: true) with UI toggle
- Setting in Plex settings page with "advanced" badge

The scan runs in the background so it doesn't block the sync process.

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-01-11 22:20:25 +13:00
grokdesigns
7b2187108d
fix(rt-ratings): add roman numeral search support (#334)
* Add Roman Numeral Support
2026-01-11 08:12:48 +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
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
33ac103895 fix(rt-ratings): fix year and title case mismatch
fix #289
2026-01-09 02:10:15 +13:00
Tom Wheeler
309f196e3b chore(mdblist): add axios error logging 2026-01-05 23:16:38 +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
Tom Wheeler
f4acd17144 fix(networks): fix parsing of hyphenated lists
fix #259, fix #263
2026-01-02 04:22:02 +13:00
Tom Wheeler
691ae055f8 fix(plex libraries): improved error handling. remove dual update paths
re #255
2026-01-01 14:03:23 +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
8c94464c17 fix(item order): fixes item ordering in plex collections
fix #225
2025-12-24 00:46:29 +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
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
0551af0027 fix(minor fixes): add editionTitle, remove duplicate poster storage intialisation 2025-12-16 03:01:12 +13:00
Tom Wheeler
bd92c8047d fix(letterboxd): fixes parsing of apostrophe
fix #199
2025-12-15 14:33:03 +13:00
samohtxotom
df99edd807
feat(trakt): add recommendations collection type (#193, #197)
* Add Trakt recommendations subtype

---------

Co-authored-by: Akin Altas <akin@sistemart.com>
2025-12-14 18:27:36 +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
d8e8183741 fix(smart collections): adds max items for smart collections
exposes max items for smart collections, adds passthrough to smart collection URI
2025-12-06 17:02:06 +13:00
Tom Wheeler
a017de4ea7 feat(poster languages): adds option for poster languages under Settings -> General
plan for future expansion (hence location), likely including locale for i18n translation, and TMDB
metadata language with fallback (where possible)

re #144
2025-12-04 20:26:33 +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
36606225e5 feat(background, theme, summary): adds background, theme, and summary to config form
background/wallpaper can now be added to the config form which will be uploaded to plex during sync,
alongside file theme (music) for collections, and text summary

fix #63
2025-12-04 13:22:43 +13:00
Tom Wheeler
783f7a85db fix(flix patrol): fixes table parsing for flix patrol
fixes combined and incomplete lists

fix #169, fix #172
2025-12-03 21:43:05 +13:00
Tom Wheeler
97f366866a fix(downloads): adds more options to config form for downloads
adds tag options to config for overseerr, adds search on add and monitor on add for radarr/sonarr

fix #106, re #131
2025-12-03 14:09:30 +13:00
Tom Wheeler
e4738ed4e2 fix(overseerr): server, root folder, and profiles can now be selected
adds options both as defaults and per collection

fix #131
2025-12-03 12:04:05 +13:00
Tom Wheeler
0aa2296bc6 fix(overlays): fixes imdb top 250 conditions, monitored (placeholder) conditions
re #115, re #144
2025-12-01 18:15:17 +13:00
Tom Wheeler
6083a79f06 feat(tmdb franchise): adds auto TMDB franchise collections
automatically creates collections with 2 or more matching items, with TMDB collection poster option
and hide from library option

fix #129
2025-11-30 22:40:15 +13:00
Tom Wheeler
4d5c600627 fix(unwatched): unwatched collections now create smart collections based off labels
no longer creates a base collection, instead adds labels to items and creates smart collection with
label filter

fix #137, fix #134
2025-11-29 16:21:19 +13:00
Tom Wheeler
07f6ac174f fix(radarr/sonarr list exclusions): updates endpoints (non-paginated now deprecated)
fix #163
2025-11-28 00:04:17 +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
6a757d806b feat(placeholders): create placeholders for missing items from any list
adds options to create placeholders for missing items in config form, adds tmdb coming soon options,
refactors recently added smart collection to main collection type

re #115, re #128
2025-11-24 18:44:17 +13:00
Tom Wheeler
87e31c6719 fix(flix patrol): fixes empty lists due to timezone/list publishing times
adds fallback to yesterdays date

re #139
2025-11-14 19:49:21 +13:00
Tom Wheeler
9ef18b0a84 fix(coming soon): adds Recently Added collection option to exclude Coming Soon placeholders
A new collection sub-type 'Recently Added' has been added under Coming Soon. This will create a
smart collection that is identical to the default Plex recently added collection, but without the
coming soon placeholder items

re #115
2025-11-13 17:53:30 +13:00
Tom Wheeler
9b44106c8e fix(ratings): iMDb TV show ratings added, RT fallback added
Adds our own external IMDb ratings proxy api to enable TV show ratings in preview collections. Adds
proper handling of RT items without rating.

re #130
2025-11-12 01:05:19 +13:00
Tom Wheeler
500a43552e refactor(plexapi): refactor plexapi.ts 2025-11-05 11:33:12 +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
c07adf23cd fix(sonarr): list exclusions in sonarr are now respected 2025-10-22 05:47:00 +13:00
Tom Wheeler
bde31c67cb fix(anilist): anilist URL's with /search can now be added. fixes preview
fix #110
2025-10-21 21:51:38 +13:00
Tom Wheeler
a5ecda562e fix(networks top 10): fixes kids lists being included in list
fix #105
2025-10-20 19:50:43 +13:00
Tom Wheeler
9992d8dd44 fix(reordering): fixes plex home/recommended reordering for large libraries with randomise order set
fix #102
2025-10-20 17:55:12 +13:00
Tom Wheeler
bfa0eb8f5f fix(item ordering): improves sync time by selectively reordering items in collections 2025-10-15 18:32:51 +13:00