Skip to content

fix(roundup): split embed fields by type per library#110

Merged
retardgerman merged 7 commits into
devfrom
fix/roundup-type-split
May 8, 2026
Merged

fix(roundup): split embed fields by type per library#110
retardgerman merged 7 commits into
devfrom
fix/roundup-type-split

Conversation

@retardgerman
Copy link
Copy Markdown
Contributor

@retardgerman retardgerman commented May 4, 2026

Changes

fix: Roundup embed fields split by content type

Embed fields per library showed all content in one block regardless of type. When a library had both movies and series, they were mixed together and long sections were silently truncated with an "… and N more" message instead of continuing in a second field.

  • Each library section now renders separate Movies and Series fields under a shared section header.
  • Long sections spill into continuation fields (e.g. "Movies (cont.)") instead of being truncated.
  • 25-field Discord hard limit guarded with a warning log if hit.
  • Removes unused field_more i18n key; adds section_movies, section_series, field_continued in EN / DE / SV / template.

feat: Separate overview toggle for movies and episodes

The embed overview setting is now split into two independent options -- one for movies and series, one for episodes. Allows users to disable episode summaries to avoid spoilers without affecting movie/series notifications.

  • EMBED_SHOW_OVERVIEW replaced by EMBED_SHOW_OVERVIEW_MOVIES and EMBED_SHOW_OVERVIEW_EPISODES, both default on.
  • Dashboard updated with two separate checkboxes under "Embed Options".
  • i18n keys added for EN / DE / SV / template.
  • Users who had the old flag disabled will need to re-configure the two new options.

AI-assisted documentation. Code logic manually verified.

Each library now gets a separator header field, then separate fields for
Movies and Series/Episodes. Long sections spill into continuation fields
instead of being silently truncated. Removes the old field_more key in
favour of field_continued.
…ettings

Replaces the single EMBED_SHOW_OVERVIEW flag with two independent options:
EMBED_SHOW_OVERVIEW_MOVIES (movies + series) and EMBED_SHOW_OVERVIEW_EPISODES.
Allows users to disable episode summaries to avoid spoilers without affecting
movie/series notifications. Both default to true. Dashboard updated with two
separate checkboxes; i18n keys added for en/de/sv.
Versions 1.0.0–1.15.1 had multiple high-severity issues including
prototype pollution gadgets, SSRF bypass, CRLF injection, and
credential injection. 1.16.0 addresses all reported advisories.
writeConfig now writes to a .tmp file and renames atomically, so a
process kill during a write leaves the original config.json intact
instead of corrupted/empty.

updateConfig now refuses to write if readConfig() returns null, preventing
a partial one-key file from replacing a fully configured config when
secrets are auto-generated after a corrupted read.
…ge audit

- api/jellyfin.js: log warn instead of silently swallowing errors in
  findLibraryByAncestors recursive search
- utils/configFile.js: distinguish corrupt/unreadable config from
  "not found" in error message
- bot/weeklyRoundup.js: throw on null getLibraryChannels(); show
  library-names-unavailable footer for single-library setups too;
  strip newlines from escapeMd; renderMovie/Series/Season now gracefully
  degrade to plain bold when itemDeeplink returns empty; remove dead
  isTest branch from onError
- bot/roundupState.js: use type-safe check in migration guard instead
  of != null
@retardgerman retardgerman merged commit bf8cb24 into dev May 8, 2026
2 checks passed
@retardgerman retardgerman deleted the fix/roundup-type-split branch May 8, 2026 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant