# -*- coding: utf-8 -*-
"""Chèn 2 ảnh mẫu (mây Thịnh Việt + lau dầu Mekong) vào mục 16/09 của Tri qc.md."""
import io, os, shutil, datetime, difflib

F = r"C:\Claw 2\QC\Tri qc.md"
IMGDIR = r"C:\Claw 2\QC\images"
A = (r"C:\Users\admin\AppData\Local\hermes\cache\images\img_56f8a8c8a7af.jpg", "tri_thinhviet_may_tviet432_3primer_1609.jpg")
B = (r"C:\Users\admin\AppData\Local\hermes\cache\images\img_ee0a1f3cfc4d.jpg", "tri_mekong_lau_dau_mk170h_1609.jpg")
for src, ten in (A, B):
    shutil.copy2(src, os.path.join(IMGDIR, ten))
    print("ảnh:", ten, os.path.getsize(os.path.join(IMGDIR, ten)) // 1024, "KB")

BK2 = os.path.join(r"C:\Claw 2\QC", datetime.datetime.now().strftime("%d%m%Y"), "BACKUP_MD", "Nhan su tham gia",
                   "QC__Tri qc_1609_trc_anh.md")
shutil.copy2(F, BK2)
print("backup lần 2:", os.path.basename(BK2), os.path.getsize(BK2), "bytes")

s = io.open(F, encoding="utf-8", newline="").read()
NL = "\r\n" if "\r\n" in s else "\n"

ANH_A = """### 📸 Hình ảnh minh họa — mẫu mây lấy từ Cty Thịnh Việt (thử 3 loại primer)

![Mẫu mây Thịnh Việt — 2 tấm mây đan mắt cáo màu kem/trắng ngà gắn trên ván ép, dùng để thử 3 loại primer](images/tri_thinhviet_may_tviet432_3primer_1609.jpg)

*Ảnh: **02 tấm mẫu mây đan mắt cáo** (màu kem/trắng ngà) gắn trên **ván ép**, kèm nền ván gỗ có **ghi chú bút chì**; đây là **mẫu mây đem từ Cty Thịnh Việt về** để thực hiện kiểm tra **song song 3 loại primer** (0922 · BT 2507 · tăng bám 1523 H) — ảnh người dùng cung cấp, 16/09/2026.*

> ⚠️ **Ghi chú về ghi chú viết tay trên ảnh (đọc theo ảnh — chữ bút chì khó đọc, đề nghị xác nhận):** trên nền ván phía trên có **“A”**, **“x 17”**, **“x 27”**; phía bên phải có cụm **“B m” (hoặc 13m)**, **“X2”**, **“S6701 ↥” (hoặc S670A)** — nghi là **ký hiệu mẫu/số tấm hoặc mã màu**; đề nghị ghi rõ ý nghĩa để đối chiếu khi đọc kết quả độ bám ngày 17/09.

"""
ANH_B = """### 📸 Hình ảnh minh họa — mẫu thử **màu lau (lau dầu)** của Mekong

![Mẫu thử lau dầu màu của Mekong — 2 tấm gỗ sồi (oak) vân nổi, tông vàng nâu mật ong](images/tri_mekong_lau_dau_mk170h_1609.jpg)

*Ảnh: **02 tấm mẫu gỗ sồi (oak)** đã **lau dầu màu**, tông **vàng nâu mật ong**; tấm dưới đậm và rõ vân hơn tấm trên nhưng **chênh lệch nhỏ**; chụp trên bàn xưởng (kèm hũ dung dịch và xấp “Bảng kê”) — **mẫu thử lau dầu màu của Mekong**, tương ứng nội dung **màu lau MK 170 H (mẫu sản xuất 1 kg) kiểm theo quy trình màu MEKONG 170 H** — ảnh người dùng cung cấp, 16/09/2026.*

> ⚠️ **Cần bổ sung khi có kết quả:** ghi rõ **mã màu lau + tấm mẫu nào ứng với mã nào** (2 tấm trong ảnh), **số lớp lau/ thời gian khô**, và **điều kiện chụp ảnh so màu** (ánh sáng) để tránh kết luận lệch do ảnh.

"""

a1 = "## 2. Màu lau **MK 170 H** — kiểm tra chất lượng"
a2 = "## 3. Đã / chưa kiểm chứng"
assert s.count(a1) == 1 and s.count(a2) == 1, (s.count(a1), s.count(a2))
assert "tri_thinhviet_may_tviet432_3primer_1609.jpg" not in s and "tri_mekong_lau_dau_mk170h_1609.jpg" not in s
new = s.replace(a1, ANH_A.replace("\n", NL) + a1).replace(a2, ANH_B.replace("\n", NL) + a2)
io.open(F, "w", encoding="utf-8", newline="").write(new)

old_l = io.open(BK2, encoding="utf-8", newline="").read().split("\n")
new_l = io.open(F, encoding="utf-8", newline="").read().split("\n")
sm = difflib.SequenceMatcher(None, old_l, new_l, autojunk=False)
removed = added = 0
for tag, i1, i2, j1, j2 in sm.get_opcodes():
    if tag in ("replace", "delete"): removed += i2 - i1
    if tag in ("replace", "insert"): added += j2 - j1
chk = io.open(F, encoding="utf-8").read()
print(f"dòng mất: {removed} | dòng thêm: {added}")
print("bản trước là tiền tố của bản mới:", chk.startswith(io.open(BK2, encoding='utf-8', newline='').read().rstrip("\r\n")))
print("ảnh A trong file:", "images/tri_thinhviet_may_tviet432_3primer_1609.jpg" in chk,
      "| ảnh B trong file:", "images/tri_mekong_lau_dau_mk170h_1609.jpg" in chk,
      "| file ảnh tồn tại:", all(os.path.exists(os.path.join(IMGDIR, t)) for _, t in (A, B)))
print("dung lượng Tri qc.md:", os.path.getsize(F), "bytes")
