#!/usr/bin/env python3
"""Verify all file links in wf-2026-report.html return HTTP 200."""
import json
import os
import subprocess
import urllib.parse

# Load data to get all source files
with open("/data/www/files/wf-2026-data.json", "r", encoding="utf-8") as f:
    data = json.load(f)

all_files = sorted(set(m["source_file"] for m in data))
print(f"Total unique files to verify: {len(all_files)}")

ok_count = 0
fail_count = 0
failed_files = []

for i, sf in enumerate(all_files, 1):
    # URL-encode the path
    encoded = urllib.parse.quote("2026-yjs-wf/" + sf)
    url = f"http://127.0.0.1:5678/{encoded}"
    
    result = subprocess.run(
        ["curl", "-s", "-o", "/dev/null", "-w", "%{http_code}", url],
        capture_output=True, text=True, timeout=10
    )
    code = result.stdout.strip()
    
    if code == "200":
        ok_count += 1
    else:
        fail_count += 1
        failed_files.append((sf, code))
        print(f"  FAIL [{code}]: {sf}")
    
    if i % 50 == 0:
        print(f"  Verified {i}/{len(all_files)}...")

print(f"\n=== Verification Results ===")
print(f"OK (200): {ok_count}")
print(f"FAILED: {fail_count}")
if failed_files:
    print(f"\nFailed files:")
    for sf, code in failed_files:
        print(f"  [{code}] {sf}")
else:
    print("All files verified successfully!")
