Hosted Weblate
cebd50f588
Merge remote-tracking branch 'origin/develop' into develop
2026-01-06 06:43:13 +01:00
bitr8
4541ea145c
fix(collections): surface per-collection sync errors to UI ( #321 )
...
Collection sync errors were being logged server-side but not surfaced
to the UI, leaving users with blank error messages when multi-source
collections failed to process.
- Added lastSyncError and lastSyncErrorAt fields to CollectionConfig
- MultiSourceOrchestrator now returns error in sync result
- CollectionSyncService persists errors and doesn't mark failed syncs as successful
- Settings methods to set/clear per-collection errors
- Individual sync route also handles and persists errors
Fixes #299
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
2026-01-06 18:43:09 +13:00
Hosted Weblate
b2fbb823e9
Merge remote-tracking branch 'origin/develop' into develop
2026-01-06 05:40:37 +00:00
Tom Wheeler
b46f42575c
chore(prettier): satisfy prettier single quotation
2026-01-06 18:39:25 +13:00
Hosted Weblate
930bb712ed
Merge remote-tracking branch 'origin/develop' into develop
2026-01-06 05:31:52 +00:00
Tom Wheeler
e370b71207
fix(collection-posters): fixes custom icons not being saved correctly
...
fix #308
2026-01-06 18:30:09 +13:00
Hosted Weblate
d8f32a9bef
Merge remote-tracking branch 'origin/develop' into develop
2026-01-05 11:47:03 +01:00
Weblate (bot)
4cf1ad5105
Translations update from Hosted Weblate ( #310 )
...
* Translated using Weblate (French)
Currently translated at 40.4% (579 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
* Translated using Weblate (Hungarian)
Currently translated at 73.4% (1052 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
* Translated using Weblate (French)
Currently translated at 54.1% (775 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
* Translated using Weblate (German)
Currently translated at 25.4% (364 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/de/
* Translated using Weblate (Hungarian)
Currently translated at 77.2% (1106 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
* Translated using Weblate (French)
Currently translated at 55.4% (794 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
* Translated using Weblate (Hungarian)
Currently translated at 77.8% (1115 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
* Translated using Weblate (German)
Currently translated at 25.1% (360 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/de/
* Translated using Weblate (Hungarian)
Currently translated at 79.6% (1140 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
---------
Co-authored-by: Sulli <susu.leduc@gmail.com >
Co-authored-by: Koch Norbert <kochnorbert@icloud.com >
2026-01-05 23:46:58 +13:00
Hosted Weblate
4f42f7a191
Merge remote-tracking branch 'origin/develop' into develop
2026-01-05 10:46:35 +00:00
Koch Norbert
8ccdfab0e4
Translated using Weblate (Hungarian)
...
Currently translated at 79.6% (1140 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
2026-01-05 10:46:35 +00:00
Sulli
b0cfcc9425
Translated using Weblate (German)
...
Currently translated at 25.1% (360 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/de/
2026-01-05 10:46:34 +00:00
bitr8
027bf11474
fix(logging): downgrade library mismatch message to debug level ( #305 )
...
The "Target library X not found or is not a movie/TV library" message
was logged at warn level, but this is a normal scenario when a collection
targets a specific library type. This caused log spam during syncs.
Fixes #265
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
2026-01-05 23:46:28 +13:00
Hosted Weblate
1f5c2d4585
Merge remote-tracking branch 'origin/develop' into develop
2026-01-05 11:38:49 +01:00
Koch Norbert
858775e7c7
Translated using Weblate (Hungarian)
...
Currently translated at 77.8% (1115 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
2026-01-05 11:38:48 +01:00
bitr8
5a19db7efe
fix(overlays): use uniform scaling for non-standard poster aspect ratios ( #306 )
...
Posters with non-standard sizes (e.g., 1000x1426 instead of 2:3 ratio)
caused overlay elements to drift outside poster edges due to separate
X/Y scaling.
Changed to uniform scaling with centering offsets:
- `scale = Math.min(scaleX, scaleY)` ensures overlays stay within bounds
- Offsets center the template area on non-standard posters
- Updated all render methods for consistency
- Recalculate dimensions after safety resize
Fixes #297
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
2026-01-05 23:38:42 +13:00
Hosted Weblate
bd9e817417
Merge remote-tracking branch 'origin/develop' into develop
2026-01-05 11:31:48 +01:00
Sulli
0758518ca7
Translated using Weblate (French)
...
Currently translated at 55.4% (794 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
2026-01-05 11:31:47 +01:00
Koch Norbert
48662c75f6
Translated using Weblate (Hungarian)
...
Currently translated at 77.2% (1106 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
2026-01-05 11:31:46 +01:00
Sulli
15cf93f117
Translated using Weblate (German)
...
Currently translated at 25.4% (364 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/de/
2026-01-05 11:31:43 +01:00
Tom Wheeler
8e105d93c2
fix(collection-posters): exclude items without tmdb poster path in content grid
...
fix #288
2026-01-05 23:30:37 +13:00
Tom Wheeler
309f196e3b
chore(mdblist): add axios error logging
2026-01-05 23:16:38 +13:00
Tom Wheeler
e2ebf90db4
fix(placeholders): ensure placeholder days ahead is respected for non-coming soon collections
...
re #253 , re #268
2026-01-05 23:16:36 +13:00
Tom Wheeler
5e8958a43e
chore(locale): add swedish
2026-01-05 23:16:35 +13:00
Tom Wheeler
9788b43fe6
chore(placeholders): fix form validation for placeholder root folders
2026-01-05 23:16:33 +13:00
Sulli
392e92b5ae
Translated using Weblate (French)
...
Currently translated at 54.1% (775 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
2026-01-05 10:31:47 +01:00
Koch Norbert
19e1865087
Translated using Weblate (Hungarian)
...
Currently translated at 73.4% (1052 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
2026-01-05 10:31:41 +01:00
Hosted Weblate
b7b10bc2cd
Merge remote-tracking branch 'origin/develop' into develop
2026-01-04 14:24:07 +00:00
Weblate (bot)
e0309635a6
Translated using Weblate (French) ( #309 )
...
Currently translated at 40.4% (579 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
Co-authored-by: Sulli <susu.leduc@gmail.com >
2026-01-05 03:24:03 +13:00
Hosted Weblate
7f46e86d33
Merge remote-tracking branch 'origin/develop' into develop
2026-01-04 13:54:56 +01:00
Tom Wheeler
fecdfb8bba
feat(placeholders): placeholder folders can now be created per-library
...
changes from global movie/tv root folders to per-library, including migration
fix #251 , fix #252
2026-01-05 01:54:33 +13:00
Tom Wheeler
531099fea6
chore(tmdb-poster-cache): add to .gitignore
2026-01-05 01:54:31 +13:00
Hosted Weblate
d65dcb005e
Merge remote-tracking branch 'origin/develop' into develop
2026-01-04 13:31:40 +01:00
bitr8
be4e100ec8
fix(collections): sync networksCountry to sources array on change ( #304 )
...
When editing an existing Networks collection, changing the country
dropdown updated the top-level networksCountry but not sources[0].networksCountry.
The form submits the sources array, so the old value was sent to the API.
Fixes #296
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
2026-01-05 01:31:35 +13:00
Hosted Weblate
36a749c129
Merge remote-tracking branch 'origin/develop' into develop
2026-01-04 12:31:10 +00:00
bitr8
e33e641a2f
fix(overlays): fetch Maintainerr collections in overlay test route ( #303 )
...
The overlay test endpoint wasn't fetching Maintainerr collections, so
daysUntilAction was always empty when testing overlays. This made it
impossible to preview Maintainerr-based overlay conditions.
Now fetches collections (when Maintainerr is configured) and passes them
to buildRenderContext, matching the behavior of the main overlay service.
Fixes #291
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
2026-01-05 01:31:05 +13:00
Hosted Weblate
d54f8efc55
Merge remote-tracking branch 'origin/develop' into develop
2026-01-04 13:30:29 +01:00
bitr8
70eb9091cf
fix(overlays): return episodeNumber from fetchReleaseDateInfo for countdown overlays ( #302 )
...
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 >
2026-01-05 01:30:25 +13:00
Sulli
6246b25a05
Translated using Weblate (French)
...
Currently translated at 40.4% (579 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
2026-01-04 10:58:48 +01:00
Tom Wheeler
9395447089
fix(placeholders): ensure movie placeholder parent folders are deleted on cleanup
2026-01-04 15:52:41 +13:00
Tom Wheeler
6709810601
fix(placeholders): add warning when placeholder creation is enabled without respective filtered hub
2026-01-04 14:05:20 +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
Weblate (bot)
c47c7ce264
Translations update from Hosted Weblate ( #298 )
...
* Translated using Weblate (Italian)
Currently translated at 23.3% (334 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/it/
* Translated using Weblate (French)
Currently translated at 29.7% (426 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
* Translated using Weblate (French)
Currently translated at 29.7% (426 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
* Translated using Weblate (French)
Currently translated at 29.7% (426 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/fr/
* Translated using Weblate (Spanish)
Currently translated at 24.6% (353 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/es/
* Translated using Weblate (Dutch)
Currently translated at 24.6% (353 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/nl/
* Translated using Weblate (Hungarian)
Currently translated at 59.4% (852 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
* Translated using Weblate (Hungarian)
Currently translated at 59.4% (852 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/hu/
* Translated using Weblate (Russian)
Currently translated at 25.3% (363 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/ru/
* Translated using Weblate (German)
Currently translated at 24.1% (346 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/de/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 24.4% (350 of 1432 strings)
Translation: agregarr/Agregarr Frontend
Translate-URL: https://hosted.weblate.org/projects/agregarr/agregarr-frontend/pt_BR/
---------
Co-authored-by: Sulli <susu.leduc@gmail.com >
Co-authored-by: Axel <axelcotte2007@gmail.com >
Co-authored-by: Koch Norbert <kochnorbert@icloud.com >
2026-01-04 12:57:58 +13:00
Lucas Charles
85ef834b0e
chore(collection-config): fix typo ( #283 )
...
chore: Fix typo, s/limiations/limitations
2026-01-03 22:17:42 +13:00
bitr8
5daf4fe78e
fix(collections): filter daily shows from Coming Soon collections ( #278 )
...
Skip series with seriesType='daily' (soaps like EastEnders, Coronation Street)
as they always have upcoming episodes which pollutes the collection.
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
2026-01-03 22:15:40 +13:00
bitr8
37591405ef
perf(overlays): add TMDB poster caching and fix race conditions ( #277 )
...
P0 Critical fixes:
- Add TMDB poster file cache with 7-day TTL (reduces API calls by ~99%)
- Add per-job TMDB URL cache with Promise coalescing for concurrent requests
- Add per-library mutex lock to prevent concurrent overlay processing
- Fix variable shadowing where passed tmdbId was ignored
P1 High priority fixes:
- Fix silent failure path - propagate errors from base poster failures
- Add cache cleanup at job start to prevent stale data
P2 Medium priority fixes:
- Fix neq condition evaluation for undefined/null fields
- Handle rejected promises in URL cache (remove on failure)
---------
Co-authored-by: bitr8 <bitr8@users.noreply.github.com >
Co-authored-by: Tom Wheeler <thomas.wheeler.tcw@gmail.com >
2026-01-03 22:14:12 +13:00
Tom Wheeler
cbe5e627a2
chore(github-actions): update to native arm64 build via oracle cloud
2026-01-03 21:54:49 +13:00
Basti Qdoba
cc9dc828d1
feat(overlays): add Radarr/Sonarr tag support for overlay conditions ( #276 )
...
Enables users to conditionally apply overlays based on Radarr/Sonarr tags.
Allows dynamic overlays based on audio languages or custom tagging schemes.
Implements feature request #272
2026-01-03 19:02:20 +13:00
Basti Qdoba
47465ea6c7
fix(bulk-edit): Fix Firefox bulk edit table rendering issue ( #271 )
...
Adds select-none CSS class to all sortable column headers in the bulk
edit collections modal to prevent text selection when clicking to sort.
This fixes a Firefox-specific error where clicking column headers would
trigger the Selection API, causing "IndexSizeError: Selection.getRangeAt:
0 is out of range" and preventing the table from rendering properly.
Firefox has unique multi-range table selection behavior and stricter
Selection API error handling compared to Safari/Chrome. By preventing
text selection on interactive headers, the Selection API is never
involved during click events, resolving the error.
The fix also improves UX - clickable headers shouldn't be selectable.
Fixes #270
Co-authored-by: Basti Qdoba <webmaster@qudiqudi.de >
2026-01-03 16:55:00 +13:00
Tom Wheeler
d47b965e6f
chore(github-actions): update push events to self-hosted
2026-01-03 01:00:31 +13:00
Tom Wheeler
c30692ce0c
fix(placeholders): fixes Days Ahead not being respected
...
fix #253 , fix #268
2026-01-02 13:48:20 +13:00