#!/opt/alt/python311/bin/python3.11
import os
import subprocess
import time
from pathlib import Path
import mysql.connector
from pdf2image import convert_from_path

DPI = 150
BOOK_TITLE = "Список населённых пунктов Киргизской ССР.pdf"

BASE_DIR = Path("/home/dayhanbiz/public_html/biblioteka/admin")
LOG_DIR = BASE_DIR / "logs"
LOG_FILE = LOG_DIR / "debug_problem.log"
TEMP_DIR = Path("/home/dayhanbiz/ocr_temp")

LOG_DIR.mkdir(exist_ok=True)
TEMP_DIR.mkdir(exist_ok=True)

def log(message):
    timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
    line = f"[{timestamp}] {message}"
    print(line)
    with open(LOG_FILE, "a", encoding="utf-8") as f:
        f.write(line + "\n")

log("=== ДИАГНОСТИКА v3 — максимально лёгкая ===")
log(f"Файл: {BOOK_TITLE}")

db = mysql.connector.connect(
    host='localhost',
    user='dayhanbiz_biblioteka_index',
    password='HN_+@(ngb25642r1',
    database='dayhanbiz_biblioteka_index'
)
cursor = db.cursor(dictionary=True)

cursor.execute("SELECT id, full_path FROM books WHERE title = %s LIMIT 1", (BOOK_TITLE,))
book = cursor.fetchone()

pdf_path = book['full_path']
book_id = book['id']

log(f"Размер файла: {os.path.getsize(pdf_path) / (1024*1024):.2f} MB")

try:
    log("Пытаемся конвертировать первые 5 страниц (jpeg, dpi=150, single thread)...")
    pages = convert_from_path(
        pdf_path, 
        dpi=DPI, 
        fmt='jpeg',
        thread_count=1,
        use_pdftocairo=True,
        first_page=1,
        last_page=5
    )
    log(f"Успешно конвертировано {len(pages)} страниц (тест)")

    for i, page in enumerate(pages, 1):
        log(f"Страница {i} — успешно создана")

    log("Тест пройден успешно.")

except Exception as e:
    log(f"КРИТИЧЕСКАЯ ОШИБКА: {e}")

cursor.close()
db.close()
