29 lines
1.2 KiB
Bash
29 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
#Use ./gotifypush <title> <message> <priority> <token> <clickurl>
|
|
|
|
# uncomment when use script from cron
|
|
PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
|
|
|
|
# Gotify notification parameters
|
|
TITLE=$1
|
|
MESSAGE=$2
|
|
PRIORITY=$3
|
|
URL="$E7S_GOTIFY_SERVER_URL/message?token=$4"
|
|
#if url passed by parameter, set to extras
|
|
if [ -n "$5" ]
|
|
then
|
|
EXTRAS="{\"client::display\": {\"contentType\": \"text/markdown\"}, \"client::notification\": {\"click\": { \"url\": \"$5\"}}}"
|
|
else
|
|
EXTRAS="{\"client::display\": {\"contentType\": \"text/markdown\"}}"
|
|
fi
|
|
|
|
# prevent gotify post error: invalid character '\\n' in string literal
|
|
# scape \\n newlines for json
|
|
# https://unix.stackexchange.com/questions/453883/how-to-escape-new-line-characters-for-json
|
|
# MESSAGE=$(echo "$MESSAGE" | sed -z 's/\n/\\n/g')
|
|
|
|
# better curl usage https://github.com/gotify/server/issues/68
|
|
#curl --silent --output /dev/null --show-error --fail -X .... #silent curl execution, no output, only html code if error
|
|
curl -X POST "${URL}" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"message\": \"${MESSAGE}\", \"priority\": ${PRIORITY}, \"title\": \"${TITLE}\", \"extras\": ${EXTRAS} }"
|