Plex returns seasons as Children.Directory (not Children.Metadata)
when using ?includeChildren=1. All placeholder detection code only
checked Children.Metadata, so isPlaceholderItem() always returned
false for TV shows — skipping title fixes and triggering false
cleanup of valid placeholders.
Added Metadata || Directory fallback across all detection paths,
type casts, and getChildrenMetadata() API helper.
Fixes#414
Co-authored-by: bitr8 <bitr8@users.noreply.github.com>
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>
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
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
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
users can now choose between fresh TMDB posters or Plex posters to use as the base poster for the
Overlays feature. On selecting Plex posters, all posters will be downloaded. Changes to Plex posters
will be detected, and downloaded for future use.
re #144
plan for future expansion (hence location), likely including locale for i18n translation, and TMDB
metadata language with fallback (where possible)
re #144
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
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
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