import os
import re
import sys

if sys.stdout.encoding != "utf-8":
    sys.stdout.reconfigure(encoding="utf-8")

# Comprehensive mapping: Old Tu Tien -> Savage PoE2 Grimdark Martial
WIKI_REPLACEMENTS = [
    # Systems & Names
    ("Kỳ Kinh Bát Mạch Đồ (Astral Meridian Chart)", "Huyết Cốt Ma Đồ (Savage Bone Matrix)"),
    ("Kỳ Kinh Bát Mạch Đồ", "Huyết Cốt Ma Đồ"),
    ("Kỳ Kinh Bát Mạch", "Huyết Cốt Ma Đồ"),
    ("Astral Meridian Chart", "Savage Bone Matrix"),
    ("Astral Meridians", "Savage Bone Matrix"),
    ("Vạn Giới Kỳ Trân Các & Rương Bang Hội", "Hắc Thị Hoang Vực & Rương Bang Hội"),
    ("Vạn Giới Kỳ Trân Các", "Hắc Thị Hoang Vực"),
    ("Universal Consignment Vault", "The Outcast Bazaar"),
    ("Universal Vault", "Outcast Vault"),
    
    # Currency
    ("Hỗn Nguyên Thạch", "Huyết Hồn Thạch"),
    ("Primal Chaos Stone", "Primal Bloodstone"),
    ("Thiên Mệnh Đan", "Cổ Cốt Ấn"),
    ("Destiny Rune", "Ancient Bone Brand"),
    ("Destiny Pill", "Ancient Bone Brand"),
    ("Thần Tướng Phù", "U Minh Cốt Đinh"),
    ("Sovereign Sigil", "Wraithbone Spike"),
    ("Thái Hư Càn Khôn Kính", "Huyết Ảnh Cổ Kính"),
    ("Void Mirror Relic", "Savage Blood Mirror"),
    ("Mirror of Void", "Savage Blood Mirror"),
    ("Thái Hư Kính", "Huyết Ảnh Kính"),
    ("Khai Linh Châu", "Hắc Sơ Thạch"),
    ("Awakening Pearl", "Crude Flint"),
    ("Tạo Hóa Thạch", "Uẩn Ma Thạch"),
    ("Creation Stone", "Feral Amber"),
    ("Tinh Luyện Phù", "Đá Mài Huyết Ngấn"),
    ("Refinement Rune", "Blood Whetstone"),
    ("Nền Kinh Tế Bản Vị Linh Thạch", "Nền Kinh Tế Barter Cổ Cốt & Huyết Thạch"),
    ("Linh Thạch Bản Vị", "Cổ Cốt & Huyết Thạch Bản Vị"),
    ("Linh Thạch Chế Tác Bản Vị", "Cổ Cốt & Huyết Thạch Bản Vị"),
    ("Linh Thạch", "Huyết Thạch"),
    ("Primal Spirit Stones", "Primal Bloodstones & Bone Relics"),
    ("Primal Spiritual Stones", "Primal Bloodstones & Bone Relics"),
    ("Spirit Stones", "Bloodstones & Bone Relics"),
    
    # Skills
    ("Chân Võ Đan", "Ma Võ Tàn Cốt"),
    ("True Martial Core", "Martial Bone Relic"),
    ("Active Martial Core", "Active Skill Bone Relic"),
    ("Thần Biến Phù", "Dị Biến Tà Ấn"),
    ("Augmenting Sigil", "Feral Mutator Glyph"),
    ("Vô Tự Bí Điển", "Hoang Cốt Thô"),
    ("Blank Scripture", "Uncarved Primal Bone"),
    
    # Agent Orb
    ("Định Hồn Thần Châu & Phân Thần Tu Luyện", "Chiến Hồn Tế Cốt & Uỷ Thác Bản Năng"),
    ("Định Hồn Thần Châu", "Chiến Hồn Tế Cốt"),
    ("Định Hồn Linh Châu", "Chiến Hồn Tế Cốt"),
    ("Thái Hư Hóa Thân Châu", "Hung Ma Tế Cốt"),
    ("Phân Thần Tu Luyện", "Uỷ Thác Bản Năng"),
    ("Phân Thần Thần Niệm", "Chiến Hồn Dã Tính"),
    ("Thần Niệm Phân Thân", "Chiến Hồn Dã Tính"),
    ("Feral War-Soul Totem Delegation", "Feral War-Soul Totem Delegation"),
    
    # Realm & Season
    ("Thái Hư Giới", "Cõi Bị Lãng Quên"),
    ("Cõi Vĩnh Hằng", "Cõi Bị Lãng Quên"),
    ("Thiên Đạo Luân Hồi", "Đại Nạn Hoang Vực"),
    ("Thiên Đạo Mùa", "Mùa Đại Nạn"),
    ("Vô Định Hoang Giới", "Hoang Vực Lưu Đày"),
    ("Boundless Exile Realm", "The Savage Deadlands"),
    ("Nghịch Mệnh Giả", "Kẻ Lưu Đày"),
    ("Fate Defier", "Savage Exile"),
]

DIRECTORIES_TO_SCAN = ["wiki", "docs"]

def process_file(file_path: str):
    with open(file_path, "r", encoding="utf-8") as f:
        content = f.read()
    
    original = content
    for old, new in WIKI_REPLACEMENTS:
        content = content.replace(old, new)
        
    if content != original:
        with open(file_path, "w", encoding="utf-8") as f:
            f.write(content)
        print(f"Updated: {file_path}")

def main():
    base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))
    for d in DIRECTORIES_TO_SCAN:
        full_d = os.path.join(base_dir, d)
        for root, dirs, files in os.walk(full_d):
            for file in files:
                if file.endswith(".md"):
                    full_p = os.path.join(root, file)
                    process_file(full_p)

if __name__ == "__main__":
    main()
