#!/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检查分割逻辑（从idx=70到idx=80）:")
print("=" * 100)
print(f"{'idx':>4} | {'start_ms':>10} | {'end_ms':>10} | {'seg_start(s)':>12} | {'seg_end(s)':>12} | {'duration(s)':>12}")
print("=" * 100)

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

    duration = seg_end - seg_start
    print(f"{idx:>4} | {start_ms:>10} | {end_ms:>10} | {seg_start:>12.3f} | {seg_end:>12.3f} | {duration:>12.3f}")

conn.close()
