#!/bin/sh

baseurl="https://matrix.br0tkasten.de"
roomId="!30E9BL9QJp3BJqWp:matrix.br0tkasten.de"

message="${MONIT_HOST} (${MONIT_SERVICE}) ${MONIT_EVENT}: ${MONIT_DESCRIPTION}"

if [ "x$message" = "x" ]
then
        exit 1
fi

# login
token=$(curl --connect-timeout 5 -m 10 -s $baseurl/_matrix/client/r0/login -H 'Accept: application/json' -X POST -d @/etc/monit/matrix_login.json | jq -r .access_token)

# send message
msgId=$(date +%s%N)
#curl --connect-timeout 5 -m 10 -s -XPUT -H "Content-Type: application/json;charset=utf-8"  -d "{ \"msgtype\": \"m.text\", \"body\": \"$message\" }" "$baseurl/_matrix/client/r0/rooms/$roomId/send/m.room.message/$msgId?access_token=$token" >/dev/null
curl --connect-timeout 5 -m 10 -s -XPUT -H "Content-Type: application/json;charset=utf-8" "$baseurl/_matrix/client/r0/rooms/$roomId/send/m.room.message/$msgId?access_token=$token" --data-binary @- << EOF >/dev/null
{
  "msgtype": "m.text",
  "body": "$message"
}
EOF

# logout
curl --connect-timeout 5 -m 10 -s $baseurl/_matrix/client/r0/logout?access_token=$token -X POST >/dev/null

logger "alert: $message"