#!/bin/bash
# 영상 파이프라인이 만든 mp3를 팟캐스트 폴더에 싣고 feed를 다시 만들어 Lightsail로 민다.
# 사용법: publish_podcast.sh [YYYY-MM-DD]  (날짜 생략 시 오늘)
set -euo pipefail

BASE=/home/ukimkj/podcast
RUN_DATE=${1:-$(date +%Y-%m-%d)}
DAY=${RUN_DATE//-/}
LOG=$BASE/publish.log
REMOTE="admin@43.202.123.207"          # 라이트세일 SSH 사용자(admin, 데비안 기반 이미지)
REMOTE_DIR="/var/www/html/podcast"     # 웹루트 확정 후 수정
SSH_OPTS="-i $HOME/.ssh/lightsail_podcast -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10"

note() { echo "$(date '+%F %T') $*" >> "$LOG"; }

publish_one() {
  local show=$1 run_root=$2
  local src="$run_root/runs/$RUN_DATE/audio/final_audio_slide_synced.mp3"
  local yt_json="$run_root/runs/$RUN_DATE/reports/youtube_upload_result.json"
  local dst="$BASE/$show/ep/$DAY.mp3"

  [ -f "$src" ] || { note "$show $RUN_DATE: 오디오 없음, 건너뜀"; return 0; }
  [ -f "$dst" ] && { note "$show $RUN_DATE: 이미 게시됨"; return 0; }

  cp "$src" "$dst"
  local dur
  dur=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$dst" | cut -d. -f1)
  python3 "$BASE/make_episode_meta.py" "$yt_json" "$BASE/$show/ep/$DAY.json" "$dur" "$run_root/runs/$RUN_DATE/reports/kimkj_post_result.json"
  python3 "$BASE/build_feed.py" "$BASE/$show"
  note "$show $RUN_DATE: 게시 (길이 ${dur}s)"
}

publish_one daily-ai /home/ukimkj/Documents/DailyAINewsVideoAutomation
publish_one china-ai /home/ukimkj/Documents/ChinaAIRobotSemiTelecomVideoAutomation

if rsync -az -e "ssh $SSH_OPTS" "$BASE/daily-ai" "$BASE/china-ai" "$REMOTE:$REMOTE_DIR/" 2>>"$LOG"; then
  note "rsync 완료"
else
  note "rsync 실패 (키 미등록/경로/네트워크). 다음 실행에서 재시도"
fi
