#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Script tạo file NGUYEN_TAC_TRUYEN_KIEU_LUC_BAT_3254_CAU.md từ JSON
"""
import json
import os
import sys

from pathlib import Path

if sys.platform == "win32":
    try:
        sys.stdout.reconfigure(encoding="utf-8")
        sys.stderr.reconfigure(encoding="utf-8")
    except Exception:
        pass

def main():
    base_dir = Path(__file__).resolve().parent.parent / "01_Scripts_And_Episodes"
    json_path = base_dir / "truyen_kieu_3254_verses.json"
    out_path = base_dir / "NGUYEN_TAC_TRUYEN_KIEU_LUC_BAT_3254_CAU.md"

    with open(json_path, "r", encoding="utf-8") as f:
        verses = json.load(f)

    check_points = [
        (1, 42, "Tài Sắc & Gia Cảnh Họ Vương", "Tập 1: Hồi 1"),
        (43, 132, "Tiết Thanh Minh & Viếng Mộ Đạm Tiên", "Tập 1: Hồi 1"),
        (133, 242, "Hội Ngộ Kim Trọng Bên Cầu", "Tập 1: Hồi 1"),
        (243, 334, "Kim Trọng Tương Tư & Thuê Trọ Cạnh Vườn Thúy", "Tập 1: Hồi 2"),
        (335, 430, "Kiều Sang Nhà Trọ & Bức Tranh Đề Thơ", "Tập 1: Hồi 2"),
        (431, 534, "Thề Nguyền Dưới Trăng & Chén Rượu Đồng Tâm", "Tập 1: Hồi 2"),
        (535, 568, "Kim Trọng Về Liêu Dương Hộ Tang", "Tập 1: Hồi 2"),
        (569, 656, "Gia Biến Họ Vương & Nạn Bán Tơ", "Tập 1: Hồi 3"),
        (657, 722, "Quyết Định Bán Mình Chuộc Cha", "Tập 1: Hồi 3"),
        (723, 756, "Đêm Trao Duyên Cho Thúy Vân", "Tập 2: Hồi 1"),
        (757, 864, "Mã Giám Sinh Mua Kiều & Cò Kè Bớt Một Thêm Hai", "Tập 2: Hồi 2"),
        (865, 930, "Kiều Theo Mã Giám Sinh Về Lâm Tri", "Tập 2: Hồi 2"),
        (931, 994, "Thất Thân Oan Khiên & Lừa Vào Thanh Lâu Tú Bà", "Tập 2: Hồi 2"),
        (995, 1054, "Kiều Quyết Tự Vẫn & Tú Bà Giam Lỏng Ở Lầu Ngưng Bích", "Tập 2: Hồi 3"),
        (1055, 1086, "Nỗi Niềm Trước Lầu Ngưng Bích", "Tập 2: Hồi 3"),
        (1087, 1204, "Sở Khanh Dụ Dỗ & Bị Vây Bắt Nơi Rừng Trúc", "Tập 2: Hồi 3"),
        (1205, 1274, "Kiếp Sống Kỹ Nữ Lầu Xanh", "Tập 3: Hồi 1"),
        (1275, 1382, "Gặp Gỡ Thúc Sinh & Mối Tình Say Đắm", "Tập 3: Hồi 1"),
        (1383, 1500, "Thúc Sinh Chuộc Kiều & Thúc Ông Kiện Lên Nha Môn", "Tập 3: Hồi 1"),
        (1501, 1526, "Phán Xử Êm Thấm & Hạnh Phúc Ngắn Ngủi", "Tập 3: Hồi 1"),
        (1527, 1714, "Cơn Ghen Hoạn Thư & Đốt Nhà Bắt Cóc Tráo Xác", "Tập 3: Hồi 2"),
        (1715, 1888, "Kiều Bị Giam Cầm, Mang Danh Con Hầu Hoa Nô", "Tập 3: Hồi 3"),
        (1889, 1988, "Hoa Nô Hầu Rượu Và Gảy Đàn Trước Thúc Sinh - Hoạn Thư", "Tập 3: Hồi 3"),
        (1989, 2068, "Kiều Ra Quan Âm Các Chép Kinh & Lấy Chuông Vàng Trốn Đi", "Tập 4: Hồi 1"),
        (2069, 2164, "Nương Nhờ Sư Giác Duyên & Sa Bẫy Bạc Bà - Bạc Hạnh", "Tập 4: Hồi 1"),
        (2165, 2166, "Lại Rơi Vào Lầu Xanh Châu Thai Lần Thứ Hai", "Tập 4: Hồi 1"),
        (2167, 2288, "Anh Hùng Từ Hải Xuất Hiện & Đại Hôn Quân Doanh", "Tập 4: Hồi 2"),
        (2289, 2314, "Từ Hải Khởi Binh Dấy Nghiệp, Vẫy Vùng Góc Trời", "Tập 4: Hồi 3"),
        (2315, 2450, "Đại Hội Báo Ân Báo Oán Của Nàng Kiều", "Tập 5: Hồi 1"),
        (2451, 2530, "Mưu Mô Thâm Độc Của Hồ Tôn Hiến & Nàng Kiều Mắc Bẫy", "Tập 5: Hồi 2"),
        (2531, 2574, "Từ Hải Mắc Bẫy - Cái Chết Đứng Bi Tráng Giữa Sa Trường", "Tập 5: Hồi 3 & Tập 6: Hồi 1"),
        (2575, 2636, "Kiều Hầu Đàn Hồ Tôn Hiến & Bị Ép Gả Cho Thổ Quan", "Tập 6: Hồi 2"),
        (2637, 2736, "Trầm Mình Sông Tiền Đường & Được Sư Giác Duyên Cứu", "Tập 6: Hồi 2 & 3"),
        (2737, 2950, "Kim Trọng Hộ Tang Trở Về & 15 Năm Tìm Kiếm Lưu Lạc", "Tập 6: Hồi 3"),
        (2951, 3192, "Cuộc Đại Đoàn Viên Kỳ Ngộ Tại Am Tiền Đường", "Tập 6: Hồi 3"),
        (3193, 3254, "Khúc Đàn Đoàn Viên, Duyên Tri Kỷ & Triết Lý Chữ Tâm", "Tập 6: Hồi 3"),
    ]

    out_md = []
    out_md.append("# ĐOẠN TRƯỜNG TÂN THANH (TRUYỆN KIỀU) - NGUYÊN TÁC 3.254 CÂU THƠ LỤC BÁT")
    out_md.append("")
    out_md.append("> **Tác giả**: Đại thi hào Nguyễn Du (1765 - 1820)")
    out_md.append("> **Thể loại**: Truyện thơ Nôm Lục Bát (Public Domain / Di sản văn học thế giới UNESCO)")
    out_md.append("> **Quy mô**: Toàn văn 3.254 câu thơ lục bát nguyên bản, chia làm 36 phần phân kỳ đối chiếu 6 tập phim điện ảnh KieuStory.")
    out_md.append("> **Mục đích**: Văn bản nguồn (Source Text) phục vụ kịch bản gốc, bóc tách prompt, lời thoại và storyboard cho dự án AI Cinema KieuStory.")
    out_md.append("")
    out_md.append("---")
    out_md.append("")
    out_md.append("## MỤC LỤC ĐỐI CHIẾU 36 PHÂN ĐOÀN VÀ 6 TẬP ĐIỆN ẢNH KIEUSTORY")
    out_md.append("")
    out_md.append("| STT | Câu Thơ | Tiêu Đề Phân Đoạn | Ánh Xạ Tập Điện Ảnh |")
    out_md.append("| :---: | :---: | :--- | :--- |")

    for idx, (start, end, title, ep) in enumerate(check_points, 1):
        slug = f"phan-{idx:02d}"
        out_md.append(f"| {idx:02d} | Câu {start:04d} - {end:04d} | [{title}](#{slug}) | {ep} |")

    out_md.append("")
    out_md.append("---")
    out_md.append("")

    for idx, (start, end, title, ep) in enumerate(check_points, 1):
        slug = f"phan-{idx:02d}"
        out_md.append(f'<a id="{slug}"></a>')
        out_md.append(f"## Phần {idx:02d}: {title} (Câu {start:04d} - {end:04d})")
        out_md.append(f"> **Tập Phim Ánh Xạ**: `{ep}` | **Số câu**: {end - start + 1} câu")
        out_md.append("")
        
        # Print verses in couplets with line numbers
        for i in range(start - 1, end):
            line_num = i + 1
            line_text = verses[i]
            out_md.append(f"`[{line_num:04d}]` {line_text}  ")
        out_md.append("")
        out_md.append("---")
        out_md.append("")

    with open(out_path, "w", encoding="utf-8") as f:
        f.write("\n".join(out_md))

    print(f"Hoàn thành xuất bản file: {out_path} ({len(out_md)} dòng markdown)")

if __name__ == "__main__":
    main()
