#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""为每个 SKU 生成「详情页」无缝长图 HTML（堆叠 2_详情页 图片），
图片复制到纯英文子目录 detail/ 以便托管与引用。"""
import os, re, glob, shutil, json

BASE = "/home/admin/.openclaw/workspace/listing"
HOST = "https://img.pinchangbao.com.cn/files"
EXTS = (".jpg", ".jpeg", ".png", ".webp")

def natkey(s):
    return [int(t) if t.isdigit() else t.lower() for t in re.split(r'(\d+)', s)]

def done(sku, files):
    print(f"  copied {len(files)} -> {sku}/detail/")

report = {}
for sku in sorted(os.listdir(BASE)):
    if not sku.startswith("MOWO-"):
        continue
    d = os.path.join(BASE, sku, "images", "2_详情页")
    if not os.path.isdir(d):
        report[sku] = {"status": "no_detail_dir", "n": 0}
        continue
    files = [f for f in os.listdir(d) if f.lower().endswith(EXTS)]
    files.sort(key=natkey)
    if not files:
        report[sku] = {"status": "empty", "n": 0}
        continue
    outdir = os.path.join(BASE, sku, "detail")
    os.makedirs(outdir, exist_ok=True)
    # clear old
    for old in os.listdir(outdir):
        os.remove(os.path.join(outdir, old))
    urls = []
    for i, f in enumerate(files, 1):
        ext = os.path.splitext(f)[1].lower()
        name = f"{i:02d}{ext}"
        shutil.copyfile(os.path.join(d, f), os.path.join(outdir, name))
        urls.append(f"{HOST}/{sku}/detail/{name}")
    imgs = "\n".join(
        f'<img src="{u}" alt="{sku} detaliu {i}" style="display:block;width:100%;max-width:100%;height:auto;margin:0;padding:0;border:0;vertical-align:bottom;" />'
        for i, u in enumerate(urls, 1))
    html = ('<div style="max-width:960px;margin:0 auto;padding:0;font-size:0;line-height:0;background:#ffffff;">\n'
            + imgs + '\n</div>\n')
    with open(os.path.join(BASE, sku, "description_seamless_images.html"), "w", encoding="utf-8") as fh:
        fh.write(html)
    with open(os.path.join(BASE, sku, "description_seamless_images.txt"), "w", encoding="utf-8") as fh:
        fh.write(html)
    size = sum(os.path.getsize(os.path.join(outdir, n)) for n in os.listdir(outdir))
    report[sku] = {
        "status": "ok", "n": len(files),
        "detail_page": f"{HOST}/{sku}/description_seamless_images.html",
        "mb": round(size / 1048576, 1),
        "files": files,
    }
    done(sku, files)

with open(os.path.join(BASE, "_data", "detail_pages_report.json"), "w", encoding="utf-8") as fh:
    json.dump(report, fh, ensure_ascii=False, indent=2)

print("\n===== SUMMARY =====")
for sku, r in report.items():
    print(f"{sku:22s} {r['status']:12s} n={r['n']:2d} {r.get('mb','')} MB")

with open("/tmp/detail_urls.txt", "w", encoding="utf-8") as fh:
    for sku, r in report.items():
        if r["status"] == "ok":
            fh.write(f"{sku}\t{r['n']}\t{r['mb']}MB\t{r['detail_page']}\n")
print("\nwrote /tmp/detail_urls.txt")
