63 Commits

Author SHA1 Message Date
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
Tom Wheeler
a40b1d9477 fix(api key validation): source API keys/connections now correctly validate and throw proper errors
corrects Overseerr test only validating connection and not API key. All sources now correctly throw
API key invalid errors instead of generic errors
2025-10-12 18:58:55 +13:00
Tom Wheeler
60343c5c2e fix(multi-source): adds grab missing items for multi source configs
also adds multi-source support to preview collections

fix #91
2025-10-08 19:07:44 +13:00
Tom Wheeler
56f519d5f9 fix(overseerr): adds .invalid to agregarr generated overseerr user emails
overseerr will no longer try send email notifications to agregarr created users. adds check for
overseerr labels to speed up sync cycles when altering/removing labels is not required

fix #92
2025-10-08 15:43:00 +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
db79e6d73e chore(anime lists): change anime ID mappings, add rate limiting 2025-10-07 19:22:46 +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
5bfdef94fb chore(flixpatrol): fix flix patrol global scraping 2025-10-06 01:40:01 +13:00
Tom Wheeler
a0cd481fe7 feat(preview collections): adds collections preview modal
collections can now be previewed via a new button in the config form, this will show the collection
and matching plex items, with options to download missing items

fix #17
2025-10-05 21:50:33 +13:00
Tom Wheeler
3c619e7a37 chore(caching): add overseerr admin caching 2025-10-03 20:16:28 +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
fb5bc0892c fix(radarr/sonarr): corrects missing items from re-monitoring items in radarr/sonarr
fix #77
2025-09-24 09:43:27 +12:00
Tom Wheeler
16f4c1f974 chore(tmdb): update TMDb to TMDB 2025-09-24 03:12:27 +12:00
Tom Wheeler
a499bf620a fix(tmdb): add TMDB lists
fix #75
2025-09-24 03:06:22 +12:00
Tom Wheeler
03fecf0ac2 fix(plex collections): collections are now correctly deleted when their config is removed
During label refresh if a collection was removed from agregarr its label was reset and would
therefore be treated as a pre-existing collection and not be deleted
2025-09-19 20:02:38 +12:00
Tom Wheeler
27092a546e chore(logs): reduced verbose logging 2025-09-19 12:09:05 +12:00
Tom Wheeler
935b279da7 feat(mdblists): add mdblists as a source
fix #69
2025-09-18 17:47:22 +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
12a45955e4 fix(config): increased max items from 1000 to 9999
fix #65
2025-09-17 22:22:35 +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