#!/bin/sh
# WHM CPU Monitor for iSH (iOS)
# Optimized for iPhone 11 Pro and iPhone 16

WHM_HOST="web.websnoogie.com"
WHM_TOKEN="2PBTSPWTUMPXYGHR155SRE5UE9MA7C8Y"

# Track if we've already alerted
ALERTED=0

while true; do
  clear
  echo "=== WHM Server Load Average ==="
  echo "Server: $WHM_HOST"
  echo "Time: $(date)"
  echo ""
  
  # Get load averages
  RESPONSE=$(curl -s -H "Authorization: whm root:$WHM_TOKEN" \
    "https://$WHM_HOST:2087/json-api/loadavg")
  
  # Check if response is valid
  if [ -z "$RESPONSE" ]; then
    echo "ERROR: Cannot connect to server"
    echo ""
    echo "Press Ctrl+C to stop"
    sleep 30
    continue
  fi
  
  # Extract 1-minute load (use grep/sed since jq might not be available)
  ONE_MIN=$(echo "$RESPONSE" | grep -o '"one":"[^"]*"' | cut -d'"' -f4)
  FIVE_MIN=$(echo "$RESPONSE" | grep -o '"five":"[^"]*"' | cut -d'"' -f4)
  FIFTEEN_MIN=$(echo "$RESPONSE" | grep -o '"fifteen":"[^"]*"' | cut -d'"' -f4)
  
  # Display load averages
  echo "1-minute:  $ONE_MIN"
  echo "5-minute:  $FIVE_MIN"
  echo "15-minute: $FIFTEEN_MIN"
  echo ""
  
  # Check if we're in the quiet window (23:58 to 00:02)
  CURRENT_TIME=$(date +%H%M)
  IN_QUIET_WINDOW=0
  
  if [ "$CURRENT_TIME" -ge 2358 ] || [ "$CURRENT_TIME" -le 2 ]; then
    IN_QUIET_WINDOW=1
    echo "(Quiet window active - alerts disabled)"
  fi
  
  # Check if load exceeds threshold (using awk for decimal comparison)
  if [ -n "$ONE_MIN" ]; then
    ALERT_NEEDED=$(awk -v load="$ONE_MIN" 'BEGIN {print (load > 5.0) ? 1 : 0}')
    
    if [ "$ALERT_NEEDED" -eq 1 ]; then
      if [ "$IN_QUIET_WINDOW" -eq 0 ] && [ "$ALERTED" -eq 0 ]; then
        # Visual alert (beep if terminal supports it)
        echo ""
        echo "⚠️  ⚠️  ⚠️  ALERT! ⚠️  ⚠️  ⚠️"
        echo "HIGH CPU LOAD DETECTED!"
        echo "1-minute load: $ONE_MIN (threshold: 5.0)"
        echo "⚠️  ⚠️  ⚠️  ALERT! ⚠️  ⚠️  ⚠️"
        printf '\a'  # Terminal bell
        ALERTED=1
      fi
    else
      # Reset alert flag when load drops below threshold
      ALERTED=0
    fi
  fi
  
  echo ""
  echo "Press Ctrl+C to stop"
  sleep 30
done