diff options
Diffstat (limited to 'animism-align/frontend/app/views/viewer/player/components.media/video.subtitles.js')
| -rw-r--r-- | animism-align/frontend/app/views/viewer/player/components.media/video.subtitles.js | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/animism-align/frontend/app/views/viewer/player/components.media/video.subtitles.js b/animism-align/frontend/app/views/viewer/player/components.media/video.subtitles.js index dfa7a85..f056168 100644 --- a/animism-align/frontend/app/views/viewer/player/components.media/video.subtitles.js +++ b/animism-align/frontend/app/views/viewer/player/components.media/video.subtitles.js @@ -3,8 +3,7 @@ import { connect } from 'react-redux' import actions from 'app/actions' import { timestampToSeconds, floatInRange } from 'app/utils' - -const REGEXP_ALL_COMMAS = new RegExp(',', 'g') +import { parseSubtitles } from 'app/utils/transcript.utils' export default class VideoSubtitles extends Component { state = { @@ -20,23 +19,10 @@ export default class VideoSubtitles extends Component { } } loadSubtitles() { - if (!this.props.mediaItem || !this.props.mediaItem.settings.subtitles) return; - const groups = this.props.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], - end_ts: ts_parts[1], - lines: lines.slice(2), - } - }).filter(a => !!a) - this.setState({ subtitles, current: null }) + const subtitles = parseSubtitles(this.props.mediaItem, 0) + if (subtitles) { + this.setState({ subtitles, current: null }) + } } updateCurrentSubtitle() { const { play_ts } = this.props |
