import os
import glob
import re
import json

base_dir = os.path.dirname(os.path.abspath(__file__))
public_dir = os.path.join(base_dir, "public")
pages_dir = os.path.join(base_dir, "src", "pages")

if not os.path.exists(pages_dir):
    os.makedirs(pages_dir)

page_meta = {}

for filepath in glob.glob(f"{public_dir}/*.html"):
    filename = os.path.basename(filepath)
    with open(filepath, 'r', encoding='utf-8') as f:
        html = f.read()

    # Extract title key
    title_match = re.search(r'<title data-i18n="([^"]+)">', html)
    title_key = title_match.group(1) if title_match else ""

    # Extract description
    desc_match = re.search(r'<meta name="description" content="([^"]+)">', html)
    desc = desc_match.group(1) if desc_match else ""

    # Extract <main> content
    main_match = re.search(r'<main>([\s\S]*?)</main>', html)
    main_content = f"<main>\n{main_match.group(1)}\n    </main>" if main_match else html

    with open(os.path.join(pages_dir, filename), 'w', encoding='utf-8') as f:
        f.write(main_content)

    page_meta[filename] = {
        "title_key": title_key,
        "description": desc
    }

with open(os.path.join(base_dir, "src", "pages.json"), 'w', encoding='utf-8') as f:
    json.dump(page_meta, f, indent=4, ensure_ascii=False)

print("Extraction completed successfully!")
