e8-status-bot/run.sh

30 lines
817 B
Bash
Executable File

#!/bin/sh
if [ -z "$MATRIX_PROVIDER" ] ||
[ -z "$MATRIX_ACCESS_TOKEN" ] ||
[ -z "$MATRIX_ROOM_ID" ] ||
[ -z "$SERVER_ADDRESS" ]
then
echo 'env vars $MATRIX_PROVIDER/$MATRIX_ACCESS_TOKEN/$MATRIX_ROOM_ID/$SERVER_ADDRESS not set'
exit -1
fi
provider="$MATRIX_PROVIDER"
token="$MATRIX_ACCESS_TOKEN"
room="$MATRIX_ROOM_ID"
server="$SERVER_ADDRESS"
status=false
while true
do
update="$(curl -s https://api.mcstatus.io/v2/status/java/$server | jq -r '.players | "Online: \(.online) (\(.list | map(.name_clean) | sort | join(", ")))"')"
if [ "$update" != "$status" ]
then
status="$update"
curl -X PUT -d "{\"topic\": \"$update\"}" \
"$provider/_matrix/client/r0/rooms/$room/state/m.room.topic?access_token=$token"
echo ""
fi
sleep 300
done