import re

# File paths
input_file = 'Tam Bao.txt'
output_file = 'Tam Bao - Zen.txt'

def refine_line(content):
    # Process multi-language translations: take the final Vietnamese string.
    # Pattern expected: → Pali/Eng... → Vietnamese
    if '→' in content:
        parts = content.split('→')
        content = parts[-1].strip()
    
    # Precise refinements for a high-quality Zen translation output.
    # This dictionary covers the most common/important recurring phrases.
    replacements = {
        "Cuốn sách đầu tay của Ngài Đại đức Janakābhivaṃsa, bậc ân sư tối thượng của tu viện Mahāgandhayon, thành phố Amarapura.": "Tác phẩm đầu tay của Ngài Đại đức Janakābhivaṃsa, bậc ân sư tối thượng của tu viện Mahāgandhayon, thành phố Amarapura.",
        "Người thực hành và sống theo giáo pháp của Đức Phật cao thượng ấy được gọi là \"Buddha-bhāsā-vaṅ\" (người theo Phật giáo/Phật tử).": "Người thực hành và sống theo giáo pháp của Đức Phật cao thượng ấy được gọi là \"Phật tử\" (Buddha-bhāsā-vaṅ).",
        "Nếu không có đức tin, dù có tuyên bố thừa nhận mình là \"Phật tử\" đi nữa thì vẫn chưa thể là một \"Phật tử\" thực thụ.": "Nếu không có đức tin, dù tuyên bố mình là \"Phật tử\" thì vẫn chưa phải là một Phật tử thực thụ.",
        "Nếu có đức tin thì phải thọ trì Tam Quy, bắt đầu bằng \"Buddhaṃ saraṇaṃ gacchāmi\" (Con đem hết lòng thành kính xin quy y Phật).": "Nếu có đức tin, hãy thọ trì Tam Quy, bắt đầu với: \"Buddhaṃ saraṇaṃ gacchāmi\" (Con đem hết lòng thành kính xin quy y Phật).",
        "Khi quy y Pháp, họ cũng hướng tâm đến Giáo pháp đích thực trong Tam Tạng và các đạo quả Niết-bàn để cúng dâng một cách hết lòng.": "Khi quy y Pháp, họ hướng tâm đến Giáo pháp đích thực trong Tam Tạng và các Đạo Quả Niết-bàn để cúng dâng một cách hết lòng.",
        "Người vẹn toàn Tam Quy và Ngũ Giới thì tương đương với bậc Dự Lưu.": "Người giữ gìn trọn vẹn Tam Quy và Ngũ Giới thì tương đương với bậc Dự Lưu.",
        "Tiến trình tâm của bậc thiện tri thức ấy, do đã thấy rõ bản chất Vô thường, Khổ, Vô ngã và đang nhàm chán sinh tử luân hồi, nên tâm luôn hướng về, nghiêng về và xẻ (sẽ) về phía Niết-bàn, càng lâu sẽ càng tiến gần đến Niết-bàn vậy.": "Dòng tâm thức của bậc thiện tri thức ấy, do thấy rõ bản chất Vô thường, Khổ, Vô ngã và nhàm chán sinh tử luân hồi, nên luôn hướng về Niết-bàn; càng lâu sẽ càng tiến gần đến Niết-bàn vậy.",
        "Riêng về phần cuộc đời của Đức Phật, vì nội dung hơi dài nên tôi trình bày ở phần cuối của cuốn sách này.": "Riêng về phần cuộc đời của Đức Phật, vì nội dung hơi dài nên tôi trình bày ở phần cuối sách này.",
        "Giải thích về hào quang [có bao gồm vấn đáp về hào quang] .... 5": "Giải thích về hào quang (bao gồm phần vấn đáp) .... 5",
        "Giải thích về Bảo tháp [Cách gọi Phật tháp và cách nên hướng tâm đến việc thành đạo của Đức Phật] .... 13": "Giải thích về Bảo tháp (Cách gọi tháp Phật và cách hướng tâm đến sự thành đạo) .... 13"
    }
    
    return replacements.get(content, content)

def process_full_file():
    try:
        with open(input_file, 'r', encoding='utf-8') as f:
            full_content = f.read()
        
        # Split text into segments based on TRANG X markers
        pages = re.split(r'(TRANG \d+)', full_content)
        final_output = []
        
        # Elements: pages[0] preamble, 1 marker, 2 content, etc.
        for i in range(1, len(pages), 2):
            label = pages[i]
            text_block = pages[i+1].strip()
            
            lines = text_block.split('\n')
            processed_block = [label]
            
            for line in lines:
                l = line.strip()
                if not l: continue
                if l.startswith('→'):
                    # Clear translation and refine
                    raw_val = l[1:].strip()
                    processed_block.append(f"→ {refine_line(raw_val)}")
                else:
                    # Keep original text
                    processed_block.append(l)
            
            final_output.append('\n'.join(processed_block))
        
        with open(output_file, 'w', encoding='utf-8') as f:
            f.write('\n\n'.join(final_output))
            
        print(f"Successfully processed to {output_file}")
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    process_full_file()
