#!/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"

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

# Уникальные буквы современного русского
MODERN_RUSSIAN = set(['ё','ы','ь','ъ','й','ж','щ','э',
                      'Ё','Ы','Ь','Ъ','Й','Ж','Щ','Э'])

# Уникальные буквы туркменской кириллицы
TURKMEN_CYRILLIC = set(['Җ','җ','Ң','ң','Ө','ө','Ү','ү','Ə','ә'])

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', '300',
                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("=== Скрипт 7. Проверка страниц 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)
    
    modern_count = sum(1 for c in text if c in MODERN_RUSSIAN)
    turkmen_count = sum(1 for c in text if c in TURKMEN_CYRILLIC)
    
    # Подсчёт твёрдого знака в конце слова
    old_russian_count = len(re.findall(r'\b\w+ъ\b', text)) + len(re.findall(r'\b\w+ъ[.,;:!?]', text))
    
    # Фильтры
    if old_russian_count > 40:
        print(f"   Старорусский (пропущен) (твердый знак: {old_russian_count}): {pdf.name}")
        if log_file and log_file.exists():
            log_file.unlink()
        continue
    
    if turkmen_count > 12:
        print(f"   Туркменский кириллица (пропущен) (туркм:{turkmen_count}): {pdf.name}")
        if log_file and log_file.exists():
            log_file.unlink()
        continue
    
    if modern_count >= 100:   # ← Изменено на 100
        try:
            pdf.rename(TARGET / pdf.name)
            print(f"→ Русский (современный) (совр:{modern_count}, старых:{old_russian_count}, туркм:{turkmen_count}): {pdf.name}")
            moved += 1
            print(f"   Лог сохранён: {log_file.name}")
        except Exception as e:
            print(f"Ошибка перемещения {pdf.name}: {e}")
    else:
        print(f"   Не русский (совр:{modern_count}, старых:{old_russian_count}, туркм:{turkmen_count}): {pdf.name}")
        if log_file and log_file.exists():
            log_file.unlink()

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