#!/usr/bin/env python3
from pathlib import Path
import subprocess
import re

BASE = Path("/home/dayhanbiz/public_html/biblioteka/тестирование скриптов/Сортировка по шрифту")
SOURCE = Path("/home/dayhanbiz/public_html/japbak.men/История Туркестана/Библиотека/Необработанные поступления")
TARGET = BASE / "Отсортированные - Старорусский"
LOG_DIR = BASE / "Скрипты" / "Temporary process files" / "script_run_logs"

TARGET.mkdir(parents=True, exist_ok=True)
LOG_DIR.mkdir(parents=True, exist_ok=True)

def extract_pages_1_5_7_9(pdf_path):
    try:
        text_total = ""
        for page in [1, 5, 7, 9]:
            result = subprocess.run([
                'pdftotext', '-f', str(page), '-l', str(page), '-r', '200',
                str(pdf_path), '-'
            ], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=180)

            page_text = result.stdout.decode('utf-8', errors='ignore')
            text_total += page_text

        log_file = LOG_DIR / f"{pdf_path.stem}_pages1-5-7-9.txt"
        with open(log_file, "w", encoding="utf-8") as f:
            f.write(text_total)

        return text_total, log_file

    except Exception as e:
        print(f"Ошибка: {pdf_path.name} → {e}")
        return "", None

print("=== Скрипт 1. Проверка страниц 1,5,7,9 на дореформенный русский ===")
pdf_files = list(SOURCE.rglob("*.pdf"))
print(f"Найдено файлов: {len(pdf_files)}\n")

moved = 0
for pdf in pdf_files:
    text, log_file = extract_pages_1_5_7_9(pdf)

    # Подсчёт твёрдого знака в конце слова
    old_count = len(re.findall(r'\b\w+ъ\b', text)) + len(re.findall(r'\b\w+ъ[.,;:!?]', text))

    if old_count >= 40:
        try:
            pdf.rename(TARGET / pdf.name)
            print(f"→ Старорусский (твердый знак: {old_count}): {pdf.name}")
            moved += 1
            print(f"   Лог сохранён: {log_file.name}")
        except Exception as e:
            print(f"Ошибка перемещения {pdf.name}: {e}")
    else:
        print(f"   Не старорусский (твердый знак: {old_count}): {pdf.name}")
        if log_file and log_file.exists():
            log_file.unlink()

print(f"\n=== Завершено. Перемещено в Старорусский: {moved} файлов ===")
print(f"Логи пишутся в: {LOG_DIR}")
