- Added ability to set Base URL through ENV variable at app start. The new variable is APP_BASE_URL. [#34]
- Added an Advanced Setting to disable the deletion of files from buckets when they are deleted from the file system. The reason for this is since the file system is continually being monitored for changes, this solves the issue of files in buckets wrongfully getting deleted when the SMB share temporarily disconnects or fails. Be aware that this will leave ghost files in your buckets if you do legitimately delete a file. Plex will be unable to find the file and simply not play a preroll if this occurs. [#35]
- Made Base URL more robust accepting any combination of zero or more leading or trailing slashes and it will still work properly.
- App was crashing when using Nager.Date (Legacy) calendar.
- Documentation is now through a website (prerollplus.org) instead of GitHub wiki.
- Security updates. Updated all node packages to current versions which removed all package vulnerabilities.
- Updated Node version to 20 LTS in Docker image.
- Updated Plex login code to remove outdated and unmaintained 3rd party package which depended on old and vulnerable packages.
- Updated Docker build process to generate smaller Docker images by stripping out the frontend build files and node modules.
- Greatly improved logging including more detailed debug code and the ability to set log size limits and maximum archived log files. (Reminder: Debug logging can be turned on in settings, Show Advanced)
- General code cleanup and housekeeping.
- Schedules can now be based on days of the week. [#32]
- Added ability to include subdirectories when using a directory as a file source for buckets. [#33]
- Added ability to change the port the app is running on from settings. The app also accepts an ENV variable on startup APP_PORT which overrides the port in the settings.
- Added ability to use a URL Base for use with reverse proxies. [#34]
- Fixed issue where holidays were using UTC time rather than local time zones.
- Improved filtering of system files (like Synology) to cover more operating systems.
- Updated "App Dir" in the "About" modal to show the proper directory the app is running in.
- You can now designate any Bucket to be a default Bucket and it will auto-populate as the first Bucket when creating a new Sequence. [#30]
- Fixed issue where Preroll Plus could not connect to the Plex server after a version update. [#31]
- Force a new Plex login in the UI to create a new Plex token if the token becomes invalid. Updated logs to present a warning and instructions for when this occurs.
- Added the ability to override the daily update of the pre-roll in Plex (typically midnight) using an ENV variable.
- Moved the "Remove" button and the "Up" and "Down" arrow buttons from the bottom of the "Bucket Sequence" table to the top when creating/editing Sequences in order to match the location of the buttons to be similar to when creating/editing Buckets.
- Added a log output for when the cache directory has successfully been created.
- An issue in the code was causing the app to crash when setting up for the first time. This only affects first time users.
- Added an option in the Settings page to choose the starting day of the week for the Calendar page. Can be set to Sunday, Monday, or Saturday. [#25]
- Dates shown in the Sequence cards on the Sequences page will be formatted per user locale. (eg. 12/30 for U.S. and 30/12 for U.K.) [#25]
- Sequences on the Sequences page can now be sorted by priority or name. [#25]
- Buckets on the Buckets page can now be sorted by name. [#25]
- Added "Month" and "Day" labels when editing schedules to remove ambiguity and make it more international friendly.
- Ability to extend a holiday schedule out any number of days before or after the actually holiday to create a "holiday window" rather than using a schedule.
- New calendar page. You can now view and cycle through calendar months to see which Sequence will play on a particular day. You can view all current and upcoming year's months.
- Added a blue box around the currently used Sequence for that day in the Sequences page. [#22]
- Fixed a critical issue where holidays would not have worked correctly for years past 2025.
- Fixed issue where deleting a newly made Sequence wasn't removing it from the list of cards.
- Fixed code to prevent app crash when can't connect to calendar API servers. [#19]
- Increased timeout for calendar API retrieval. [#19]
- Prevent the querying of the calendar APIs when creating a new Sequence and when toggling the schedule and it is not set to Holiday. [#19]
- Addition of a second calendar source (Calendarific) that includes hundreds more holidays to choose from. [#15] a. Calendar APIs have been broken out to two sources you can choose from: Legacy (Nager.Date) which is the original API used, and Premier (Calendarific). b. The use of the Premier (Calendarific) calendar API requires signing up to a free account with them which include up to 500 API calls per month. c. Calendarific calendars are cached locally to reduce the number of API calls to eliminate the need to pay for a higher account tier. d. Calendars are based on year/country/type with type being National, Local, Religious, and Observance. e. Caches can be cleared at any time if you wish to pull a fresh copy of the calendars (Settings/Advanced), otherwise new versions will be automatically pulled at the beginning of the calendar year when needed. f. The listings for the holidays in the UI now include dates (current year) and the dates should be formatted for your language/country. g. In areas where there are states, provinces, or other local regions, holidays may be broken up by those local regions. h. Holiday lists in the UI can now be sorted by holiday name or by date.
- Scheduling conflicts have been removed from the UI and schedule priorities have been put in their place. [#16] a. There can still only be one Sequence that does not have a schedule.
- Changed menu behavior so if there are no buckets you cannot enter the Sequences page and user will be routed to Buckets to start creating one since Sequences are dependent on Buckets.
- Configuration file schema has been updated to accommodate changes in Sequences such as priorities and information for Calendarific. a. Existing configs will be backed up and migrated over to the new schema. Behavior should work as previously intended, but all priorities will be set to N/A until changed.
- Fixed issue where not having a Bucket name was allowed when source was set to Directory.
- Fixed issue where information that is saved in a Sequence or Bucket were not updating immediately on cards when saved.
- Fixed issue where pop-ups were not showing properly in dark mode. [#14]
- Sequence cards were not showing the scheduled holiday if "Holiday" is chosen as the schedule.
- Brought internal packages up to date.
- Log file names were using the wrong application.
- Minor code fixes.
- Added ability to select a holiday for the schedule.
- Bring the app out of beta testing.
- Logging to file. Logs will be found in /config for native installs and the mounted config folder for Docker installs.
- Removed logging of frontend to backend web router calls.
- Added "Show/Hide Advanced" options in Settings page and included a logging level toggle.
- Server list wasn't showing secure connection options when "Secure connections" in the Plex Media Server settings was set to "Required".
- Dark mode setting was not being preserved in the save file when logging out.
- Minor fix to file monitoring.
- Added a dark mode which can be toggled on and off [#5]
- You can now choose if you want Buckets to be tied directly to folders, or stay with the current approach of manually selecting files for the Bucket in the UI. [#2]
- Bucket and file listings when editing a Bucket are updated in realtime when files/folders in the filesystem are added/deleted/renamed. [#2]
- Moved all inline CSS to external files to make style changes easier
- Basic code cleanup to remove compiler warnings
- Fixed issue where Synology is adding additional info to the file paths causing the monitoring to not work correctly. [#4]
- Fixed bug where files added to Buckets had an extra slash if file came from root directory. This also affected the file's ability to be monitored for changes. [#4]
- If Bucket is empty due to a backend file removal (since the UI does not allow for saving empty buckets), the Plex string no longer displays "undefined" for that Bucket.
- Added option for file monitoring through polling for when preroll directory is mounted over an SMB (or similar) share.
- Update Buckets in settings and Plex string when files in the file system are deleted, renamed, or moved. [#1]
- Deleting a Bucket will update any Sequences it is in and also update the Plex string.
- Added directory location under the file names in the "Files in buckets" list.
- "Plex location or preroll media" text box in the Settings tab is not grayed out for Native installs anymore. This is to accommodate users that run their Plex server on a different machine than Preroll Plus. [#3]
- Fixed issue where opening a Sequence that contains a recently deleted bucket was generating an error.
- Make header bar "sticky" to the top of the window. [#1]
- Make list of files in bucket alphabetical. [#1]
- Change "Add" button in buckets to a "left arrow" to match the asthetic of the Sequences page. [#1]
- Sequences and Buckets are now highlighted when editing them. [#1]
- Added a video preview player in the Bucket creation/edit page. [#1]
- Brought back build number which wasn't brought back in previous version after local testing.
- The file list in Buckets was not indicating if the directory location set in Settings does not exist.
- Fix "Update Available" URL.
- Fixed output string in Sequences when trying to save without having a sequence name or buckets.
- Plex server preroll sequence string is updated when a Sequence is deleted to prevent playing an unwanted sequence.
- Fix error when clicking the button to add a bucket to a sequence when a bucket is not selected. [#1]
- If two identical buckets are used in a sequence, or the same pre-roll is used in two different buckets in the same sequence, Plex will not play the same pre-roll twice.
- Fixed double slashes in pre-roll string on some file system. [#1]
- Updated server retrieval logic to parse multiple IPs returned from account server list and mark the unreachable IP's as unreachable. [#1]
Initial beta release