#!/usr/bin/env python3
"""
检查分割时间范围（修正版）
"""
import sqlite3
import subprocess

db_path = "\\\\ll\\D\\xtrssvjj\\dpd.db"
audio_file = "\\\\ll\\d\\wxvddata\\我们人类到底是怎么一步步走到今天这个样子的_枪炮_病菌与钢铁__高晓松__矮大紧__文学.mp3"

# 获取音频总时长
probe_cmd = ["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", audio_file]
result = subprocess.run(probe_cmd, capture_output=True, text=True)
total_duration = float(result.stdout.strip())

print(f"音频总时长: {total_duration}秒")

# 查询所有字幕时间
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
cursor.execute("SELECT idx, start, end FROM srts WHERE adid = 8096 ORDER BY idx ASC")
subtitles = cursor.fetchall()

print(f"\n检查分割时间范围（从segment_070到segment_080）:")
print("=" * 80)

for i in range(70, 81):
    idx, start_ms, end_ms = subtitles[i]
    
    # 间隔中点逻辑
    if i == 0:
        seg_start = 0
    else:
        prev_end_ms = subtitles[i-1][2]
        seg_start = (prev_end_ms + start_ms) / 1000

    if i < len(subtitles) - 1:
        next_start_ms = subtitles[i+1][1]
        seg_end = (end_ms + next_start_ms) / 1000
    else:
        seg_end = total_duration

    print(f"segment_{idx:03d}: start={seg_start:.3f}s, end={seg_end:.3f}s, duration={seg_end-seg_start:.3f}s")

conn.close()
