30 lines
817 B
Bash
Executable File
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
|