dockcheck/notify_templates/notify_telegram.sh

44 lines
1.8 KiB
Bash
Raw Normal View History

### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
#
# Copy/rename this file to notify.sh to enable the notification snippet.
# Required receiving services must already be set up.
# Modify to fit your setup - set TelegramChatId and TelegramToken.
2025-02-10 19:46:23 +01:00
FromHost=$(hostname)
trigger_notification() {
# Modify to fit your setup:
TelegramToken="Your Telegram token here"
TelegramChatId="Your Telegram ChatId here"
TelegramUrl="https://api.telegram.org/bot$TelegramToken"
TelegramTopicID=12345678 ## Set to 0 if not using specific topic within chat
TelegramData="{\"chat_id\":\"$TelegramChatId\",\"text\":\"$MessageBody\",\"message_thread_id\":\"$TelegramTopicID\",\"disable_notification\": false}"
curl -sS -o /dev/null --fail -X POST "$TelegramUrl/sendMessage" -H 'Content-Type: application/json' -d "$TelegramData"
2025-02-13 21:34:03 +01:00
}
2025-02-10 19:46:23 +01:00
send_notification() {
2024-10-07 21:28:31 +02:00
[ -s "$ScriptWorkDir"/urls.list ] && releasenotes || Updates=("$@")
UpdToString=$( printf '%s\\n' "${Updates[@]}" )
# platform specific notification code would go here
printf "\nSending Telegram notification\n"
# Setting the MessageBody variable here.
MessageBody="🐋 Containers on $FromHost with updates available: \n$UpdToString"
2025-02-10 19:46:23 +01:00
trigger_notification
}
2025-02-15 13:35:47 +01:00
### Rename (eg. disabled_dockcheck_notification), remove or comment out the following function
2025-02-10 19:46:23 +01:00
### to not send notifications when dockcheck itself has updates.
dockcheck_notification() {
2025-03-07 21:05:58 +01:00
printf "\nSending Telegram dockcheck notification\n"
2025-02-10 19:46:23 +01:00
MessageTitle="$FromHost - New version of dockcheck available."
# Setting the MessageBody variable here.
printf -v MessageBody "$FromHost - New version of dockcheck available.\n\nInstalled version: $1 \nLatest version: $2 \n\nChangenotes: $3"
trigger_notification
}