fixed a bug

This commit is contained in:
2026-08-30 11:19:57 +08:00
parent 0d0b82e095
commit 7cdc637527
2 changed files with 20 additions and 11 deletions

View File

@@ -458,7 +458,7 @@ class VideoRepository:
""", """,
( (
normalized_hash, normalized_hash,
replacement.index, sentence_index + replacement.index,
replacement.start_ms, replacement.start_ms,
replacement.end_ms, replacement.end_ms,
replacement.text, replacement.text,

View File

@@ -206,24 +206,32 @@ def test_admin_can_split_sentence_and_reindexes_following_sentences(tmp_path):
repository.save_processing_result( repository.save_processing_result(
SentenceBoundaryDocument( SentenceBoundaryDocument(
video_hash=VIDEO_HASH, video_hash=VIDEO_HASH,
duration_ms=9000, duration_ms=12000,
algorithm_version="test", algorithm_version="test",
sentences=[ sentences=[
SentenceBoundary( SentenceBoundary(
index=0, index=0,
start_ms=0, start_ms=0,
end_ms=4000, end_ms=2000,
text="First part second part", text="Before.",
language="en", language="en",
reference_speech_duration_ms=3600, reference_speech_duration_ms=1800,
), ),
SentenceBoundary( SentenceBoundary(
index=1, index=1,
start_ms=4000, start_ms=2000,
end_ms=9000, end_ms=9000,
text="First part second part",
language="en",
reference_speech_duration_ms=6600,
),
SentenceBoundary(
index=2,
start_ms=9000,
end_ms=12000,
text="Next sentence.", text="Next sentence.",
language="en", language="en",
reference_speech_duration_ms=4600, reference_speech_duration_ms=2800,
), ),
], ],
), ),
@@ -242,23 +250,24 @@ def test_admin_can_split_sentence_and_reindexes_following_sentences(tmp_path):
) )
) )
response = client.put( response = client.put(
f"/api/v1/admin/videos/{VIDEO_HASH}/sentences/0/split", f"/api/v1/admin/videos/{VIDEO_HASH}/sentences/1/split",
json={"text": "First part\nsecond part", "language": "en"}, json={"text": "First part\nsecond part", "language": "en"},
) )
assert response.status_code == 200 assert response.status_code == 200
replacements = response.json() replacements = response.json()
assert [item["text"] for item in replacements] == ["First part", "second part"] assert [item["text"] for item in replacements] == ["First part", "second part"]
assert replacements[0]["start_ms"] == 0 assert replacements[0]["start_ms"] == 2000
assert replacements[0]["end_ms"] == replacements[1]["start_ms"] assert replacements[0]["end_ms"] == replacements[1]["start_ms"]
assert replacements[1]["end_ms"] == 4000 assert replacements[1]["end_ms"] == 9000
document = repository.get_document(VIDEO_HASH) document = repository.get_document(VIDEO_HASH)
assert [item.text for item in document.sentences] == [ assert [item.text for item in document.sentences] == [
"Before.",
"First part", "First part",
"second part", "second part",
"Next sentence.", "Next sentence.",
] ]
assert [item.index for item in document.sentences] == [0, 1, 2] assert [item.index for item in document.sentences] == [0, 1, 2, 3]
def test_admin_boundary_adjustment_updates_linked_next_start(tmp_path): def test_admin_boundary_adjustment_updates_linked_next_start(tmp_path):