# -*- coding: utf-8 -*-
"""Sửa số vụ sai trên portal KPH: 35 -> 37 (đếm từ DOM), có backup trước khi ghi."""
import io, re, os, shutil, datetime
P = r"C:\Claw 2\Bao cao - Hanh chinh\BAOCAOTONGHOP\HTML\KPH_TongHop_0508\index.html"
ts = datetime.datetime.now().strftime("%Y%m%d_%H%M")
bak = P.replace(".html", f".bak_{ts}_trc_sua_so_vu.html")
shutil.copy2(P, bak)
print("backup:", os.path.basename(bak))

h = io.open(P, encoding="utf-8", newline="").read()
n_dom = h.count('class="inc"')
print("số khối trong DOM:", n_dom, "| số vụ đang ghi:", re.findall(r"(\d+)\s*vụ việc", h))

h2, c1 = re.subn(r"(<small>)\d+(\s*vụ việc)", lambda m: m.group(1) + str(n_dom) + m.group(2), h)
h3, c2 = re.subn(r"(badge\">\s*(?:🏭\s*)?)\d+(\s*vụ việc)", lambda m: m.group(1) + str(n_dom) + m.group(2), h2)
print("đã sửa:", c1, "chỗ logo nav +", c2, "chỗ hero badge")
if c1 != 1 or c2 != 1:
    raise SystemExit("⚠ dừng: số chỗ thay thế không như mong đợi, KHÔNG ghi file")
io.open(P, "w", encoding="utf-8", newline="").write(h3)

chk = io.open(P, encoding="utf-8").read()
print("sau khi sửa:", re.findall(r"(\d+)\s*vụ việc", chk), "| khối:", chk.count('class="inc"'),
      "| div cân bằng:", chk.count("<div") == chk.count("</div>"),
      "| figure cân bằng:", chk.count("<figure") == chk.count("</figure>"))
src = re.findall(r"Chi tiết[^<]{0,60}", chk)[:2]
print("tiêu đề mục danh sách:", src)
