#!/bin/bash

DIR="$HOME/apps/tars-link-monitor"
JSON="$DIR/link-status.json"

DATA=$(curl -s http://127.0.0.1:9997/v3/srtconns/list)

ONLINE=$(echo "$DATA" | jq '([.items[]? | select(.state == "publish")] | length) > 0')

BITRATE=$(echo "$DATA" | jq -r '[.items[]? | select(.state == "publish") | (.mbpsReceiveRate * 1000)] | add // 0 | floor')

PING=$(echo "$DATA" | jq -r '[.items[]? | select(.state == "publish") | .msRTT] | add // 0 | floor')

LOSS=$(echo "$DATA" | jq -r '[.items[]? | select(.state == "publish") | .packetsReceivedLossRate] | add // 0')

if [ "$ONLINE" = "true" ]; then

    if (( PING < 80 )); then
        QUALITY=95

    elif (( PING < 150 )); then
        QUALITY=70

    elif (( PING < 250 )); then
        QUALITY=40

    else
        QUALITY=15
    fi

else
    BITRATE=0
    PING=0
    QUALITY=0
fi

cat > "$JSON" << JSON
{
  "online": $ONLINE,
  "bitrate": $BITRATE,
  "ping": $PING,
  "quality": $QUALITY,
  "loss": $LOSS
}
JSON
