import re

# Mapping for specific title refinements (Pages 1-3)
manual_refinement = {
    "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.",
    "Bảo Tính (Bảo Tánh) (Phẩm chất cao quý của Tam Bảo).": "Bảo Tính (Bảo Tánh) (Phẩm chất cao quý của Tam Bảo).",
    "Nhà in Pitaka Offset New Burma, thành phố Amarapura.": "Nhà in Pitaka Offset New Burma, thành phố Amarapura.",
    "Lời nói đầu.": "Lời nói đầu.",
    "Cơ hội để trở thành người Phật tử.": "Cơ hội để trở thành người Phật tử.",
    "Đức Thế Tôn bậc Chánh Biến Tri được gọi là \"Buddha\" (Đức Phật).": "Đức Thế Tôn bậc Chánh Biến Tri được gọi là \"Buddha\" (Đức Phật).",
    "Giáo pháp của Đức Phật cao thượng ấy được gọi là \"Buddha Sāsana\" (Phật giáo).": "Giáo pháp của Đức Phật cao thượng ấy được gọi là \"Buddha Sāsana\" (Phật giáo).",
    "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ṅ).",
    "Người muốn trở thành hoặc đang là Phật tử phải hiểu rõ về ý nghĩa của Tam Bảo cao quý là Buddha (Phật), Dhamma (Pháp), Saṅgha (Tăng).": "Người muốn trở thành hoặc đang là Phật tử phải hiểu rõ ý nghĩa của Tam Bảo cao quý: Phật (Buddha), Pháp (Dhamma), Tăng (Saṅgha).",
    "Sau khi đã hiểu như vậy, nên tự suy xét rằng: \"Bản thân mình có đức tin hay không có đức tin nơi Tam Bảo này?\".": "Sau khi đã hiểu, nên tự suy xét: \"Bản thân mình có đức tin hay không có đức tin nơi Tam Bảo này?\".",
    "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 đó mới trở thành người Phật tử chân chính.": "Khi đó mới trở thành người Phật tử chân chính.",
    "Người Phật tử bằng trí tuệ.": "Người Phật tử bằng trí tuệ.",
    "Vì Tam Bảo ấy, họ sẵn lòng từ bỏ ngay cả mạng sống của mình.": "Vì Tam Bảo ấy, họ sẵn lòng từ bỏ cả mạng sống của mình.",
    "Người này chính là người Phật tử gắn liền với trí tuệ.": "Người này chính là người Phật tử gắn liền với trí tuệ.",
    "Người Phật tử bằng đức tin (cảm tính).": "Người Phật tử bằng đức tin (cảm tính).",
    "Đối với các tôn tượng và bảo tháp, họ thường có xu hướng thành kính hơn đối với những tượng Phật của dòng tộc, tổ tiên hoặc những tượng tháp do chính mình cúng dường.": "Đối với các tôn tượng và bảo tháp, họ thường có xu hướng thành kính hơn với những tượng Phật của dòng tộc, tổ tiên hoặc những tượng tháp do chính mình cúng dườ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 vẹn toàn Tam Quy và Ngũ Giới thì tương đương với bậc Dự Lưu."
}

def refine_line(content):
    # Take Vietnamese part if multi-language
    if '→' in content:
        parts = content.split('→')
        content = parts[-1].strip()
    
    # Apply manual refinements if available to make it "Zen's version"
    return manual_refinement.get(content, content)

def process_full_file():
    with open('Tam Bao.txt', 'r', encoding='utf-8') as f:
        full_content = f.read()
    
    pages = re.split(r'(TRANG \d+)', full_content)
    final_output = []
    
    for i in range(1, len(pages), 2):
        page_label = pages[i]
        page_content = pages[i+1].strip()
        
        lines = page_content.split('\n')
        processed_page = [page_label]
        
        for line in lines:
            line = line.strip()
            if not line: continue
            if line.startswith('→'):
                raw_text = line[1:].strip()
                refined = refine_line(raw_text)
                processed_page.append(f"→ {refined}")
            else:
                processed_page.append(line)
        
        final_output.append('\n'.join(processed_page))
    
    with open('Tam Bao - Zen.txt', 'w', encoding='utf-8') as f:
        f.write('\n\n'.join(final_output))

if __name__ == "__main__":
    process_full_file()
