54 Commits

Author SHA1 Message Date
bitr8
63b8851a1a
fix(Placeholders): Separate placeholder filters independent of auto-request filters (#456)
* feat: separate placeholder filters independent of auto-request filters

Add placeholderMinimumYear, placeholderMinimumImdbRating,
placeholderMinimumRottenTomatoesRating,
placeholderMinimumRottenTomatoesAudienceRating, and
placeholderFilterSettings to CollectionConfig and
MultiSourceCollectionConfig.

buildPlaceholderFilterConfig() helper swaps placeholder values into
standard filter fields so MissingItemFilterService works unchanged.
Updated BaseCollectionSync and MultiSourceOrchestrator call sites.

Collapsible "Placeholder Filters" section in collection edit form
reuses FilterWithMode/KeywordFilterWithMode. Auto-expands when
editing configs with existing values.

Fixed pre-existing gap: keywords missing from
MultiSourceCollectionConfig.filterSettings type.

---------

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
Co-authored-by: Tom Wheeler <thomas.wheeler.tcw@gmail.com>
2026-02-20 13:22:44 +13:00
bitr8
a6e3e017bd
fix(collections): use correct Plex API endpoint for collection title updates (#444)
Collections require the /library/sections/{id}/all?type=18 endpoint for
metadata updates, not /library/metadata/{ratingKey}. This fixes dynamic
cycle titles (DYNAMIC_CYCLE_TITLE) not updating in Plex after first sync.

- Add libraryKey parameter to updateCollectionTitle()
- Use correct Plex API endpoint for collection metadata updates
- Lock title field to prevent Plex overwriting
- Propagate errors instead of swallowing them

Fixes #432

Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
2026-02-13 08:37:58 +13:00
Tom Wheeler
84db0e23c2 feat(collections): items that fall off collections now have a label 'agregarr-stale' added
includes check after each collection is processed to handle items existing in multiple collections

fix #384
2026-01-29 19:29:20 +13:00
Tom Wheeler
a87ab2557d feat(radarr-sonarr): add option to tag existing media
previously only missing items could have tags added, a new option in radarr/sonarr settings allows
the addition of tags to existing media, using the existing tags used in missing items. also extracts
and refactors tagging functions to remove duplication.

fix #248
2026-01-29 17:27:26 +13:00
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
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
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
a3fec4027f fix(tmdb posters): language option can now be selected per-library
fix #220
2026-01-01 07:36:44 +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
788371c0f0 fix(placeholders): ensure placeholders are cleaned up in various scenarios 2025-12-17 22:37:54 +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
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
9debc2d3e3 fix(saved posters): refactor of poster system with database tracking and automatic discovery 2025-12-16 02:45:55 +13:00
Tom Wheeler
a862d0930c fix(exclusions): adds mutual exclusions to multi-source
re #115
2025-12-15 07:10:40 +13:00
Tom Wheeler
c8fdc7b1ac feat(quick sync): adds quick sync for collections and overlays
adds news jobs for quick sync collections and overlays. checks recently added items in last 24 hrs
or since last quick sync, and adds any missing items to collections, and applies overlays
2025-12-14 09:43:29 +13:00
Tom Wheeler
54c215e15e fix(collections): fixes stale hubs data creating collections
ensures hub data is deleted when deleting a collection when becoming inactive due to time
restrictions. also removes incorrect logic which caused a pre-existing collection to be created if
it was only found it hub data, which is incorrect as collections remain in plex hubs even if the
collection is deleted in the library.
2025-12-12 00:15: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
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
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
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
6c4b230d55 feat(item ordering): lists can now be ordered by IMDb ratings
also refactors list order options to enums instead of boolean values

fix #39
2025-12-01 14:16:06 +13:00
Tom Wheeler
2ac987a832 feat(exclusions): adds collection mutual exclusion
collections can now be selected in the config form to exclude

fix #156
2025-12-01 08:40:31 +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
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
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
6f8c07d58e fix(smart collections): fixes smart collections feature not working for multi source collections
fix #137
2025-11-11 22:28:35 +13:00
Tom Wheeler
effa172840 fix(tmdb): adds networks and companies support for custom lists 2025-11-04 16:15:51 +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
fdfa221470 chore(preview collections): adds caching for preview collections optimisation 2025-10-09 14:34:01 +13:00
Tom Wheeler
cb9774f5de feat(item exclusions): individual items can now be excluded from lists globally
adds new option in preview collections that allows items to be added to a global exclusions list,
this will exclude an item from all agregarr collections, and from grabbing missing items
2025-10-09 10:15:06 +13:00
Tom Wheeler
7185029a47 chore(merge): merge anime feature branch into develop
fix #35
2025-10-08 15:00:34 +13:00
Tom Wheeler
908fc52bcf feat(add anilist and mal): adds AniList and MAL as sources
fix #35
2025-10-07 05:31:47 +13:00
Tom Wheeler
9fd2da2566 chore(smart collections): removes collectionMode from backend
Initially collectionMode was used to hide the base collection in the library tab, but turns out Plex
propogates the settings from the base collection to the smart collection, and vice versa, so the
smart collection got hidden as well.
2025-10-06 08:46:11 +13:00
Tom Wheeler
5db47da2c6 feat(unwatched filter): adds unwatched option in config
add new option in config form to show unwatched items only, which creates a smart collection in plex
with the unwatched filter based off the normal collection

fix #51
2025-10-03 14:06:02 +13:00
Tom Wheeler
d1d5bf1f03 chore(maxitems): fixes all items being sent for request when position limit = 0
fixes bug introduced in commit 954f32b where if position limit in download settings was set to 0,
then the full list would be added as missing items, instead of respecting the maxItems limit
2025-09-24 09:50:01 +12:00
Tom Wheeler
faa401a040 fix(poster templates): add import/export, add fonts, add layers (major rework)
Adds poster template import/export function, including required assets (ZIP). Adds import/export of
source colours (JSON). Refactored elements into unified system. Added elements layering. Added
canvas for accurate text measurements. Added fonts. Changed dockerfile to build with debian for
dependencies. Added poster files for quicker generation of poster previews.
2025-09-24 02:17:49 +12:00
Tom Wheeler
88e5ef3fef fix(collections): episode based collections can now be created for trakt and imdb
fix #68
2025-09-18 14:46:53 +12:00
Tom Wheeler
75ff906ab6 refactor(poster editor): resolve merge conflicts 2025-09-15 17:59:01 +12:00
Tom Wheeler
bdbbf3cd08 fix(poster editor): multiple fixes for poster template editor 2025-09-15 17:30:51 +12:00
rkbhkp
923eb5fb9a Working anlist collection for TV shows 2025-09-11 11:46:34 -05:00
Tom Wheeler
91ac4cb5ba fix(random lists): adds true random collections for trakt, imdb, letterboxd and tmdb
selecting random list/collection will now select a random list from the relevant source, and ensure
that the content exists in your library before creation
2025-09-11 21:06:55 +12:00
Tom Wheeler
9c438b317b feat(multi-lists): collections can now be created with multiple sources
adds new multiple sources option, where multiple sources can be added to a single config, with
options to combine in order, randomise, or cycle lists

fix #50
2025-09-10 15:17:19 +12:00
Tom Wheeler
90e6987c72 chore: poster editor first iteration 2025-09-06 14:42:42 +12:00
Tom Wheeler
722b3e3776 fix: multiple minor fixes 2025-09-02 23:58:08 +12:00
Tom Wheeler
d021a70d1b fix: prevent async discovery/collections sync, minor bug fixes 2025-09-02 20:14:56 +12:00
Tom Wheeler
b778430ab3 feat: add poster generationn and management
fix #45
2025-09-02 13:57:59 +12:00
Tom Wheeler
f3f84991aa fix: multiple minor fixes 2025-09-01 19:22:54 +12:00