#!/usr/bin/env bash
set -euo pipefail
cd /root/notchlight

echo "→ rendering 90 frames"
node tools/render.js frames

echo "→ encoding 3s master"
ffmpeg -v error -y -framerate 30 -i render/f_%04d.png \
  -c:v libx264 -profile:v high -level 5.1 -pix_fmt yuv420p -crf 16 -preset slow \
  -x264-params "keyint=30:min-keyint=30:scenecut=0" \
  -colorspace bt709 -color_primaries bt709 -color_trc bt709 -an -movflags +faststart \
  out/Notchlight.MOV

echo "→ encoding 2s / 60 frame version for intoLive"
ffmpeg -v error -y -framerate 30 -start_number 0 -i render/f_%04d.png -frames:v 60 \
  -c:v libx264 -profile:v high -level 5.1 -pix_fmt yuv420p -crf 16 -preset slow \
  -x264-params "keyint=30:min-keyint=30:scenecut=0" \
  -colorspace bt709 -color_primaries bt709 -color_trc bt709 -an -movflags +faststart \
  out/Notchlight_intoLive_2s.MOV

echo "→ key still"
python3 - <<'PY'
from PIL import Image
im = Image.open('render/f_0054.png').convert('RGB')
assert im.size == (1206, 2622)
im.save('out/Notchlight_Live.JPG', quality=96, subsampling=0, optimize=True, progressive=False)
PY

UUID=$(python3 -c "import uuid;print(str(uuid.uuid4()).upper())")
echo "→ pairing UUID $UUID"
exiftool -overwrite_original -tagsFromFile /tmp/donor.jpg -MakerNotes out/Notchlight_Live.JPG >/dev/null
exiftool -overwrite_original "-MakerNotes:ContentIdentifier=$UUID" out/Notchlight_Live.JPG >/dev/null
cp out/Notchlight.MOV out/Notchlight_Live.MOV
exiftool -overwrite_original "-Keys:ContentIdentifier=$UUID" out/Notchlight_Live.MOV >/dev/null

echo "→ preview + pvt + zip"
ffmpeg -v error -y -i out/Notchlight.MOV -vf "scale=540:1174:flags=lanczos" \
  -c:v libx264 -crf 22 -preset slow -pix_fmt yuv420p -an -movflags +faststart out/Preview.mp4
cp out/Notchlight_Live.JPG out/Notchlight_Still.jpg
rm -rf out/Notchlight.pvt && mkdir -p out/Notchlight.pvt
cp out/Notchlight_Live.JPG out/Notchlight_Live.MOV out/Notchlight.pvt/

rm -rf out/source && mkdir -p out/source
cp -r src assets tools package.json out/source/
cp out/README.md out/source/README.md
rm -rf out/source/tools/__pycache__ out/source/assets/kid_v2.png out/source/assets/bg_v1.png out/source/assets/bg_fullbleed_v1.png out/source/assets/kid_v1.png out/source/assets/kid_v3.png

cd out
rm -f ../Notchlight_LiveWallpaper.zip
zip -r -q ../Notchlight_LiveWallpaper.zip README.md Notchlight_intoLive_2s.MOV Notchlight_Live.MOV \
  Notchlight_Live.JPG Notchlight.pvt Notchlight_Still.jpg Preview.mp4 source
cd ..
ls -lh Notchlight_LiveWallpaper.zip
