diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2020-11-09 17:50:42 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2020-11-09 17:50:42 +0100 |
| commit | 634abd7cec252e61dd171ffbbaa83dec87062bd1 (patch) | |
| tree | 2141f45cdd3ea3427636ffeaa7baabf15fbb3583 /animism-align/frontend/app/utils | |
| parent | 1b4da06342d36e5db84f2c6a6c0904c1a20be028 (diff) | |
subtitles in transcript. clicking them seeks video
Diffstat (limited to 'animism-align/frontend/app/utils')
| -rw-r--r-- | animism-align/frontend/app/utils/transcript.utils.js | 22 | ||||
| -rw-r--r-- | animism-align/frontend/app/utils/viewer.utils.js | 1 |
2 files changed, 22 insertions, 1 deletions
diff --git a/animism-align/frontend/app/utils/transcript.utils.js b/animism-align/frontend/app/utils/transcript.utils.js index 258afa1..115eace 100644 --- a/animism-align/frontend/app/utils/transcript.utils.js +++ b/animism-align/frontend/app/utils/transcript.utils.js @@ -150,3 +150,25 @@ const getParagraphType = (annotation, paragraph) => { } return paragraph.type } + +const REGEXP_ALL_COMMAS = new RegExp(',', 'g') + +export const parseSubtitles = (mediaItem, timeOffset) => { + if (!mediaItem || !mediaItem.settings.subtitles) return + const groups = mediaItem.settings.subtitles.split("\n\n") + const subtitles = groups.map((group) => { + if (!group) return + const lines = group.trim().split("\n") + if (!lines.length || !parseInt(lines[0])) { + return null + } + let ts_parts = lines[1].replace(REGEXP_ALL_COMMAS, '.').split(" --> ").map(timestampToSeconds) + return { + id: parseInt(lines[0]), + start_ts: ts_parts[0] + timeOffset, + end_ts: ts_parts[1] + timeOffset, + lines: lines.slice(2), + } + }).filter(a => !!a) + return subtitles +} diff --git a/animism-align/frontend/app/utils/viewer.utils.js b/animism-align/frontend/app/utils/viewer.utils.js index 9cf8e8f..efb50d6 100644 --- a/animism-align/frontend/app/utils/viewer.utils.js +++ b/animism-align/frontend/app/utils/viewer.utils.js @@ -39,4 +39,3 @@ export const groupColumns = (lines, cols) => { } return columns } - |
