#!/usr/bin/env python3
"""
OCR Sadi-196-200 - Simple version, process one page at a time
"""

import os
import base64
import requests
import sys

WORKSPACE = "/opt/openclaw/.openclaw/workspace/Chuan Muc Sadi"
OUTPUT_FILE = f"{WORKSPACE}/Sadi-196-200-qwen.md"
API_KEY = os.environ.get("OPENROUTER_API_KEY")

if not API_KEY:
    print("❌ Thiếu OPENROUTER_API_KEY")
    sys.exit(1)

# Process pages 1-5
results = []

for page_num in range(1, 6):
    page_path = f"{WORKSPACE}/sadi196_page-{page_num}.png"
    
    if not os.path.exists(page_path):
        print(f"❌ Không tìm thấy trang {page_num}: {page_path}")
        continue
    
    print(f"\n📄 OCR trang {page_num}/5...")
    
    # Read and encode image
    with open(page_path, "rb") as f:
        base64_image = base64.b64encode(f.read()).decode("utf-8")
    
    print(f"  📊 Ảnh size: {len(base64_image)} bytes")
    
    # API request
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
        "HTTP-Referer": "https://openclaw.ai",
        "X-Title": "OpenClaw OCR"
    }
    
    payload = {
        "model": "qwen/qwen3.5-397b-a17b",
        "messages": [{
            "role": "user",
            "content": [
                {"type": "text", "text": f"OCR trang {page_num}. Trích xuất CHÍNH XÁC NGUYÊN VĂN (literal transcription) toàn bộ văn bản Myanmar. Giữ nguyên mọi ký tự, không chỉnh sửa, không làm sạch. Output thuần văn bản Myanmar."},
                {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{base64_image}"}}
            ]
        }],
        "max_tokens": 4096,
        "temperature": 0.1
    }
    
    try:
        response = requests.post(
            "https://openrouter.ai/api/v1/chat/completions",
            headers=headers,
            json=payload,
            timeout=300
        )
        
        if response.status_code == 200:
            result = response.json()
            content = result["choices"][0]["message"]["content"]
            results.append(f"### Trang 19{page_num - 1 if page_num > 1 else page_num + 95}\n\n{content}")
            print(f"  ✅ Hoàn thành ({len(content)} ký tự)")
        else:
            print(f"  ❌ Lỗi: {response.status_code} - {response.text[:200]}")
            results.append(f"### Trang {195 + page_num}\n\n[LỖI: {response.status_code}]")
    except Exception as e:
        print(f"  ❌ Ngoại lệ: {str(e)}")
        results.append(f"### Trang {195 + page_num}\n\n[LỖI: {str(e)}]")

# Save results
output = f"""# OCR Trích Xuất: Sadi 196-200
# Model: qwen/qwen3.5-397b-a17b qua OpenRouter
# Ngày: 2026-04-24

""" + "\n\n".join(results)

with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
    f.write(output)

print(f"\n✅ Đã lưu vào {OUTPUT_FILE}")
print(f"📊 Tổng: {len(results)} trang")
