#!/bin/bash
# PPT 一键发布：pptx → pdf + 66 页全览 + 公网校验
# 用法：bash publish.sh <pptx路径> <版本号如2.9> [目标目录]
set -e
SRC="$1"; VER="$2"; DST="${3:-/home/ubuntu/platform/static/speech/ppt-v2}"
[ -z "$SRC" ] && { echo "用法: bash publish.sh <pptx> <版本号>"; exit 1; }
BASE=$(basename "$SRC" .pptx); TMP=$(mktemp -d)
echo "① 转 PDF ..."
soffice --headless --convert-to pdf --outdir "$TMP" "$SRC" >/dev/null 2>&1
cp "$SRC" "$DST/speech-v$VER.pptx"
cp "$TMP/$BASE.pdf" "$DST/speech-v$VER.pdf"
echo "② 生成全览图 ..."
pdftoppm -r 48 -png "$TMP/$BASE.pdf" "$TMP/all"
/usr/bin/python3.12 - "$TMP" "$DST/overview-v$VER.png" <<'PY'
import glob, sys
from PIL import Image
tmp, out = sys.argv[1], sys.argv[2]
fs = sorted(glob.glob(tmp + "/all-*.png"))
W, H, cols = 300, 169, 6
rows = (len(fs) + cols - 1) // cols
sh = Image.new("RGB", (W*cols + 8*(cols-1), H*rows + 8*(rows-1)), (230, 226, 218))
for i, f in enumerate(fs):
    im = Image.open(f).convert("RGB").resize((W, H), Image.LANCZOS)
    r, c = divmod(i, cols)
    sh.paste(im, (c*(W+8), r*(H+8)))
sh.save(out)
print(f"   {len(fs)} 页 → {out}")
PY
echo "③ 权限 + 公网校验 ..."
chmod 664 "$DST"/*
for f in speech-v$VER.pptx speech-v$VER.pdf overview-v$VER.png; do
  printf "   %-22s %s\n" "$f" "$(curl -sS -o /dev/null -w '%{http_code} %{size_download}B' --max-time 300 "http://110.42.227.12/platform/static/speech/ppt-v2/$f")"
done
echo "✅ 发布完成：http://110.42.227.12/platform/static/speech/ppt-v2/speech-v$VER.pptx"
