#!/usr/bin/env bash
# 범용 스테이징: stage_jensen.sh <NN>
# final/jensen_chNN_{ko,en}.mp3 를 표지 임베드해 두 쇼 ep/ 에 올리고 ep json 작성, feed 재빌드(미래면 숨김), rsync.
set -euo pipefail
NN="${1:?장 번호 NN 필요 (예: 02)}"
BASE=/home/ukimkj/podcast
JX=$BASE/jensen_extra
COVER=$JX/jensen_cover.jpg
QUEUE=$JX/jensen_queue.json
REMOTE="admin@43.202.123.207"; REMOTE_DIR="/var/www/html/podcast"
SSH_OPTS="-i $HOME/.ssh/lightsail_podcast -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10"

KO_IN=$JX/final/jensen_ch${NN}_ko.mp3
EN_IN=$JX/final/jensen_ch${NN}_en.mp3
for f in "$KO_IN" "$EN_IN" "$COVER" "$QUEUE"; do [ -f "$f" ] || { echo "없음: $f"; exit 1; }; done

embed(){ ffmpeg -y -loglevel error -i "$1" -i "$COVER" -map 0:a -map 1:v -c:a copy -c:v mjpeg \
  -disposition:v attached_pic -id3v2_version 3 -metadata:s:v title="Album cover" "$2"; }

# 큐에서 이 장 메타 읽기 → mp3 파일명, 제목/설명/guid/pub
read MP3 PUB < <(python3 -c "import json,sys;q=json.load(open('$QUEUE'));e=[x for x in q if x['nn']=='$NN'][0];print(e['mp3'],e['pub'])")
SLUG="${MP3%.mp3}"

embed "$KO_IN" "$BASE/daily-ai/ep/$MP3"
embed "$EN_IN" "$BASE/daily-ai-en/ep/$MP3"
cp -f "$COVER" "$BASE/daily-ai/jensen_cover.jpg"
cp -f "$COVER" "$BASE/daily-ai-en/jensen_cover.jpg"
KO_DUR=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$BASE/daily-ai/ep/$MP3" | cut -d. -f1)
EN_DUR=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$BASE/daily-ai-en/ep/$MP3" | cut -d. -f1)

python3 - "$QUEUE" "$NN" "$BASE" "$SLUG" "$MP3" "$KO_DUR" "$EN_DUR" <<"PY"
import json,sys
qf,nn,base,slug,mp3,ko_dur,en_dur=sys.argv[1:8]
e=[x for x in json.load(open(qf)) if x["nn"]==nn][0]
def w(show,lang,title,desc,guid,dur,img):
    d={"slug":slug,"show":show,"lang":lang,"title":title,"description":desc,"guid":guid,
       "mp3_filename":mp3,"published_at":e["pub"],"published_at_kst":e["pub"],"duration":int(dur),
       "image_url":img,"status":"ready_for_podcast_feed","source":"NotebookLM Audio Overview",
       "series":"젠슨황전기_호외","episode_no":e["ep"]}
    json.dump(d,open(f"{base}/{show}/ep/{slug}.json","w"),ensure_ascii=False,indent=1)
w("daily-ai","ko",e["ko_title"],e["ko_desc"],e["ko_guid"],ko_dur,"https://kimkj.com/podcast/daily-ai/jensen_cover.jpg")
w("daily-ai-en","en",e["en_title"],e["en_desc"],e["en_guid"],en_dur,"https://kimkj.com/podcast/daily-ai-en/jensen_cover.jpg")
print(f"ep json written ko_dur={ko_dur} en_dur={en_dur} pub={e['pub']}")
PY

python3 "$BASE/build_feed.py" "$BASE/daily-ai"
python3 "$BASE/build_feed.py" "$BASE/daily-ai-en"
rsync -az -e "ssh $SSH_OPTS" "$BASE/daily-ai" "$BASE/daily-ai-en" "$REMOTE:$REMOTE_DIR/"
echo "STAGED ch$NN: $MP3 ko=${KO_DUR}s en=${EN_DUR}s pub=$PUB (해당일 22:00 노출)"
