repaire sentences
This commit is contained in:
@@ -544,6 +544,53 @@ class VideoRepository:
|
||||
sentences=[_sentence_from_row(row) for row in rows],
|
||||
)
|
||||
|
||||
def replace_sentences(
|
||||
self,
|
||||
document: SentenceBoundaryDocument,
|
||||
) -> SentenceBoundaryDocument:
|
||||
"""Replace stored sentences while preserving video status and translations."""
|
||||
normalized_hash = normalize_video_hash(document.video_hash)
|
||||
with self._connect() as connection:
|
||||
existing = connection.execute(
|
||||
"SELECT video_hash FROM videos WHERE video_hash = ?",
|
||||
(normalized_hash,),
|
||||
).fetchone()
|
||||
if existing is None:
|
||||
raise KeyError(normalized_hash)
|
||||
connection.execute(
|
||||
"DELETE FROM sentences WHERE video_hash = ?",
|
||||
(normalized_hash,),
|
||||
)
|
||||
connection.executemany(
|
||||
"""
|
||||
INSERT INTO sentences (
|
||||
video_hash, sentence_index, start_ms, end_ms, text,
|
||||
language, zh_text, reference_speech_duration_ms
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
[
|
||||
(
|
||||
normalized_hash,
|
||||
sentence.index,
|
||||
sentence.start_ms,
|
||||
sentence.end_ms,
|
||||
sentence.text,
|
||||
sentence.language,
|
||||
sentence.zh_text,
|
||||
sentence.reference_speech_duration_ms,
|
||||
)
|
||||
for sentence in document.sentences
|
||||
],
|
||||
)
|
||||
connection.execute(
|
||||
"UPDATE videos SET updated_at = ? WHERE video_hash = ?",
|
||||
(utc_now(), normalized_hash),
|
||||
)
|
||||
saved = self.get_document(normalized_hash)
|
||||
if saved is None:
|
||||
raise KeyError(normalized_hash)
|
||||
return saved
|
||||
|
||||
def update_sentence_text(
|
||||
self,
|
||||
video_hash: str,
|
||||
|
||||
Reference in New Issue
Block a user