#!/usr/bin/env bash
set -euo pipefail

JOINPHP="${1:-/home/itahukamedia/public_html/studio.itahukamedia.com/public/join.php}"
TS="$(date +%Y%m%d_%H%M%S)"

cp -a "$JOINPHP" "$JOINPHP.bak.$TS"
echo "Backup created: $JOINPHP.bak.$TS"

if grep -q 'function ensureAudioContext()' "$JOINPHP"; then
  echo "ensureAudioContext() already exists. No change made."
  exit 0
fi

TMP="$(mktemp)"

awk '
BEGIN{done=0}
{
  if (!done && $0 ~ /^  function getMediaStreamTrack\(track\)\{/){
    print
    inblock=1
    next
  }

  if (inblock){
    print
    if ($0 ~ /^  \}$/){
      print ""
      print "  function ensureAudioContext(){"
      print "    if (!audioCtx) audioCtx = new (window.AudioContext || window.webkitAudioContext)();"
      print "    if (audioCtx && audioCtx.state === \"suspended\"){"
      print "      audioCtx.resume().catch(()=>{});"
      print "    }"
      print "    return audioCtx;"
      print "  }"
      inblock=0
      done=1
    }
    next
  }

  print
}
' "$JOINPHP" > "$TMP"

mv "$TMP" "$JOINPHP"

echo
echo "Patch complete."
echo
echo "Verify:"
grep -n 'function getMediaStreamTrack(track)\|function ensureAudioContext()' "$JOINPHP"
echo
echo "Syntax check:"
php -l "$JOINPHP"
