import sys
import sqlite3
from pathlib import Path

BASE_DIR = Path("/home/dayhanbiz/public_html/Библиотека 3-DAMJA")
DB_PATH = BASE_DIR / "search_databases" / "library_search.db"

def search_library(query_str, limit=5):
    if not DB_PATH.exists():
        print("Поисковая база данных еще не создана. Запустите индексатор.")
        return
        
    conn = sqlite3.connect(DB_PATH)
    cursor = conn.cursor()
    
    # FTS5 запрос с подсветкой и сниппетами
    sql = """
        SELECT book_hash, page_number, snippet(pages_fts, 2, '<b>[', ']</b>', '...', 32) 
        FROM pages_fts 
        WHERE pages_fts MATCH ? 
        ORDER BY rank 
        LIMIT ?
    """
    
    try:
        cursor.execute(sql, (query_str, limit))
        results = cursor.fetchall()
        
        if not results:
            print(f"По запросу «{query_str}» ничего не найдено.")
        else:
            print(f"\nРезультаты поиска по запросу: «{query_str}»\n" + "-"*50)
            for idx, (b_hash, p_num, snippet) in enumerate(results, 1):
                print(f"{idx}. Книга (хэш): {b_hash} | Страница: {p_num}")
                print(f"   Контекст: {snippet}\n" + "-"*40)
    except Exception as e:
        print(f"Ошибка поискового запроса: {e}")
    finally:
        conn.close()

if __name__ == "__main__":
    if len(sys.argv) > 1:
        q = " ".join(sys.argv[1:])
        search_library(q)
    else:
        print("Использование: python3.11 scripts/04_search.py <поисковый запрос>")
