#!/usr/bin/env python3
"""Verify all file links in the HTML report."""
import re
import subprocess
import sys

HTML_FILE = "/data/www/files/2026-yjs-lzy-2026-report.html"
BASE_URL = "http://127.0.0.1:5678/"

with open(HTML_FILE, 'r', encoding='utf-8') as f:
    content = f.read()

# Extract all href links that point to 2026-yjs-lzy/
links = re.findall(r'href="(2026-yjs-lzy/[^"]+)"', content)
unique_links = sorted(set(links))

print(f"总链接数: {len(links)}")
print(f"唯一链接数: {len(unique_links)}")

ok = 0
fail = 0
fail_list = []

for i, link in enumerate(unique_links, 1):
    url = BASE_URL + link
    try:
        result = subprocess.run(
            ["curl", "-sI", "-o", "/dev/null", "-w", "%{http_code}", url],
            capture_output=True, text=True, timeout=10
        )
        code = result.stdout.strip()
        if code == "200":
            ok += 1
        else:
            fail += 1
            fail_list.append((link, code))
        if i % 50 == 0:
            print(f"  进度: {i}/{len(unique_links)} (OK:{ok} FAIL:{fail})")
    except Exception as e:
        fail += 1
        fail_list.append((link, str(e)))

print(f"\n验证完成!")
print(f"  成功: {ok}")
print(f"  失败: {fail}")

if fail_list:
    print(f"\n失败链接:")
    for link, code in fail_list[:20]:
        print(f"  [{code}] {link}")
    if len(fail_list) > 20:
        print(f"  ...还有 {len(fail_list)-20} 个失败链接")
