# -*- coding: utf-8 -*-
"""Chuẩn hoá portal_map.json: blocks[block_id] = '<no> <text khối>' cho MỌI khối trong index.html."""
import io, os, re, json
from bs4 import BeautifulSoup

CL2 = r"C:\Claw 2\Bao cao - Hanh chinh\BAOCAOTONGHOP\HTML\KPH_TongHop_0508"
MAP = r"C:\Claw\Khieu Nai KHach Hang\portal_map.json"
h = io.open(os.path.join(CL2, "index.html"), encoding="utf-8").read()
soup = BeautifulSoup(h, "html.parser")

m = json.load(io.open(MAP, encoding="utf-8"))
blocks = m.setdefault("blocks", {})
print("blocks trước:", len(blocks))

sua = them = 0
for idx, b in enumerate(soup.select("div.inc"), 1):
    bid = b.get("id") or ""
    no = b.select_one("span.no")
    no = no.get_text(strip=True) if no else str(idx)
    if not bid:
        continue
    body = b.select_one(".inc-body")
    txt = re.sub(r"\s+", " ", body.get_text(" ", strip=True)) if body else ""
    val = f"{no} {txt[:118]}"
    if bid in blocks:
        if blocks[bid] != val:
            blocks[bid] = val; sua += 1
    else:
        blocks[bid] = val; them += 1
        print("  + thêm:", bid, "→", val[:60])

print("blocks sau:", len(blocks), "| thêm", them, "| cập nhật", sua)
print("khối TTH270:", blocks.get("tienhung-tth270", "")[:90])
m["by_hoso"]["824"] = "tienhung-tth270"
io.open(MAP, "w", encoding="utf-8").write(json.dumps(m, ensure_ascii=False, indent=1))
json.load(io.open(MAP, encoding="utf-8"))          # kiểm tra JSON hợp lệ
print("JSON hợp lệ | by_hoso", len(m["by_hoso"]), "| by_kph", len(m["by_kph"]), "| blocks", len(m["blocks"]))
