#!/usr/bin/env bash
set -u
BASE=/data/video-pipeline/Channel-Loi-Co-Nhan/project
BGM=/data/video-pipeline/Channel-Loi-Co-Nhan/data/bgm/Borderless-Aakash-Gandhi.mp3
LOG=/data/video-pipeline/Channel-Loi-Co-Nhan/rerender_038_062_064_bgm_borderless.log
: > "$LOG"

echo "START $(date '+%F %T') bgm=$BGM" | tee -a "$LOG"
for n in $(seq -w 038 062) 064; do
  P=$(find "$BASE" -maxdepth 1 -type d -name "13062026-${n}-*" | sort | head -n 1)
  if [ -z "$P" ]; then
    P=$(find "$BASE/Complete" -maxdepth 1 -type d -name "13062026-${n}-*" | sort | head -n 1)
  fi
  if [ -z "$P" ]; then
    echo "$(date '+%F %T') MISSING $n" | tee -a "$LOG"
    continue
  fi
  echo "$(date '+%F %T') RENDER_START $P" | tee -a "$LOG"
  python3 "$P/scripts_worker_rebuild_strict.py" >> "$LOG" 2>&1
  code=$?
  if [ $code -eq 0 ]; then
    python3 - "$P" <<'PY' >> "$LOG" 2>&1
from pathlib import Path
import json, sys
p=Path(sys.argv[1])
info=p/'output/info.json'
public=f"https://mediareel.pain.io.vn/Channel-Loi-Co-Nhan/project/{p.name}/output/final/final_video.mp4"
if info.exists():
    data=json.loads(info.read_text(encoding='utf-8'))
    data['public_link']=public
    data['public_url']=public
    info.write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding='utf-8')
print('PUBLIC', public)
PY
    echo "$(date '+%F %T') RENDER_OK $P" | tee -a "$LOG"
  else
    echo "$(date '+%F %T') RENDER_FAIL code=$code $P" | tee -a "$LOG"
  fi
done
echo "DONE $(date '+%F %T')" | tee -a "$LOG"
