2024-02-10 03:03:07 +03:30
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
2025-08-20 03:42:21 -04:00
NOTIFY_MATRIX_VERSION = "v0.4"
2024-02-10 03:03:07 +03:30
#
# Required receiving services must already be set up.
2025-05-29 16:43:34 -04:00
# Leave (or place) this file in the "notify_templates" subdirectory within the same directory as the main dockcheck.sh script.
# If you instead wish make your own modifications, make a copy in the same directory as the main dockcheck.sh script.
# Do not modify this file directly within the "notify_templates" subdirectory. Set MATRIX_ACCESS_TOKEN, MATRIX_ROOM_ID, and MATRIX_SERVER_URL in your dockcheck.config file.
2024-02-10 03:03:07 +03:30
2025-08-20 03:42:21 -04:00
trigger_matrix_notification( ) {
if [ [ -n " $1 " ] ] ; then
matrix_channel = " $1 "
else
matrix_channel = "matrix"
fi
2025-02-09 22:01:08 +01:00
2025-08-23 00:01:09 -04:00
UpperChannel = " ${ matrix_channel ^^ } "
2025-08-20 03:42:21 -04:00
AccessTokenVar = " ${ UpperChannel } _ACCESS_TOKEN "
RoomIdVar = " ${ UpperChannel } _ROOM_ID "
MatrixServerVar = " ${ UpperChannel } _SERVER_URL "
2025-02-09 22:01:08 +01:00
2025-08-20 03:42:21 -04:00
if [ [ -z " ${ !AccessTokenVar :- } " ] ] || [ [ -z " ${ !RoomIdVar :- } " ] ] || [ [ -z " ${ !MatrixServerVar :- } " ] ] ; then
printf " The ${ matrix_channel } notification channel is enabled, but required configuration variables are missing. Matrix notifications will not be sent.\n "
remove_channel matrix
2025-08-29 00:56:40 -04:00
return 0
2025-08-20 03:42:21 -04:00
fi
AccessToken = " ${ !AccessTokenVar } " # e.g. MATRIX_ACCESS_TOKEN=token-value
RoomId = " ${ !RoomIdVar } " # e.g. MATRIX_ROOM_ID=myroom
MatrixServer = " ${ !MatrixServerVar } " # e.g. MATRIX_SERVER_URL=http://matrix.yourdomain.tld
2025-05-25 12:26:13 -04:00
MsgBody = " {\"msgtype\":\"m.text\",\"body\":\" $MessageBody \"} "
2025-02-09 22:01:08 +01:00
2025-05-25 12:26:13 -04:00
# URL Example: https://matrix.org/_matrix/client/r0/rooms/!xxxxxx:example.com/send/m.room.message?access_token=xxxxxxxx
2025-08-20 03:42:21 -04:00
curl -S -o /dev/null ${ CurlArgs } -X POST " $MatrixServer /_matrix/client/r0/rooms/ $RoomId /send/m.room.message?access_token= $AccessToken " -H 'Content-Type: application/json' -d " $MsgBody "
2025-06-24 09:16:48 -04:00
if [ [ $? -gt 0 ] ] ; then
NotifyError = true
fi
2025-05-25 12:26:13 -04:00
}