OSF import: Characters and dialogue cues (#28) #74

Merged
crowmaki merged 1 commit from issue-28-osf-characters-cues into main 2026-10-07 09:57:46 +00:00
Owner

Closes #28. Part of #24.

Stacked PR. Review and merge in order: #26 → #27 → #28 → #29 → #30 → #31 → #32. Each PR targets the branch of the one before it.

What

  • Migration V3: a character table, plus character_id, extensions, spoken_language, spoken_text and simultaneous_group on line.
  • Characters come from cues: trailing groups are removed, then the name is upper-cased and whitespace-collapsed. Equal names share one Character.
  • Extensions (V.O., O.S./O.C., SUBTITLE, other) are stored as a list on the Line. Spelling variants are tolerated. CONT'D is dropped.
  • SUBTITLE Lines get editable spoken language and text (an undoable edit). Lines are flagged at read time while either field is empty.
  • Dual dialogue: the marked block and the next dialogue block share a simultaneous group.
  • UI: Character names, extension badges, simultaneous pairs, flags, subtitle inputs.

Tests

tests/characters_import.rs.

Checks

  • cargo test --workspace --all-features, cargo clippy --workspace --all-targets --all-features -- -D warnings and bun run check pass.
  • The Svelte UI is type-checked only. It has not been run in the app.
Closes #28. Part of #24. > **Stacked PR.** Review and merge in order: #26 → #27 → #28 → #29 → #30 → #31 → #32. Each PR targets the branch of the one before it. ## What - Migration V3: a `character` table, plus `character_id`, `extensions`, `spoken_language`, `spoken_text` and `simultaneous_group` on `line`. - Characters come from cues: trailing groups are removed, then the name is upper-cased and whitespace-collapsed. Equal names share one Character. - Extensions (V.O., O.S./O.C., SUBTITLE, other) are stored as a list on the Line. Spelling variants are tolerated. CONT'D is dropped. - SUBTITLE Lines get editable spoken language and text (an undoable edit). Lines are flagged at read time while either field is empty. - Dual dialogue: the marked block and the next dialogue block share a simultaneous group. - UI: Character names, extension badges, simultaneous pairs, flags, subtitle inputs. ## Tests `tests/characters_import.rs`. ## Checks - `cargo test --workspace --all-features`, `cargo clippy --workspace --all-targets --all-features -- -D warnings` and `bun run check` pass. - The Svelte UI is type-checked only. It has not been run in the app.
Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
crowmaki changed target branch from issue-27-osf-scenes-lines to main 2026-10-07 09:57:41 +00:00
crowmaki deleted branch issue-28-osf-characters-cues 2026-10-07 09:57:46 +00:00
Sign in to join this conversation.
No description provided.