2024-02-02 16:00:04 +01:00
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
2025-09-15 05:25:23 -04:00
NOTIFY_TELEGRAM_VERSION = "v0.5"
2024-02-02 16:00:04 +01:00
#
# 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 TELEGRAM_CHAT_ID and TELEGRAM_TOKEN in your dockcheck.config file.
2024-02-02 16:00:04 +01:00
2025-09-15 05:25:23 -04:00
trigger_telegram_notification( ) {
if [ [ -n " $1 " ] ] ; then
telegram_channel = " $1 "
else
telegram_channel = "telegram"
fi
2025-02-10 19:46:23 +01:00
2025-09-15 05:25:23 -04:00
UpperChannel = " ${ telegram_channel ^^ } "
TelegramTokenVar = " ${ UpperChannel } _TOKEN "
TelegramChatIdVar = " ${ UpperChannel } _CHAT_ID "
TelegramTopicIdVar = " ${ UpperChannel } _TOPIC_ID "
if [ [ -z " ${ !TelegramChatIdVar :- } " ] ] || [ [ -z " ${ !TelegramTokenVar :- } " ] ] ; then
printf " The ${ telegram_channel } notification channel is enabled, but required configuration variables are missing. Telegram notifications will not be sent.\n "
remove_channel telegram
return 0
fi
2025-05-02 21:40:24 +02:00
2025-05-25 12:26:13 -04:00
if [ [ " $PrintMarkdownURL " = = true ] ] ; then
ParseMode = "Markdown"
else
ParseMode = "HTML"
fi
2025-05-02 21:40:24 +02:00
2025-09-15 05:25:23 -04:00
TelegramToken = " ${ !TelegramTokenVar } " # e.g. TELEGRAM_TOKEN=token-value
TelegramChatId = " ${ !TelegramChatIdVar } " # e.g. TELEGRAM_CHAT_ID=mychatid
2025-05-25 12:26:13 -04:00
TelegramUrl = " https://api.telegram.org/bot $TelegramToken "
2025-09-15 05:25:23 -04:00
TelegramTopicID = ${ !TelegramTopicIdVar : = "0" }
2025-02-10 19:46:23 +01:00
2025-05-29 16:43:34 -04:00
JsonData = $( " $jqbin " -n \
--arg chatid " $TelegramChatId " \
--arg text " $MessageBody " \
--arg thread " $TelegramTopicID " \
--arg parse_mode " $ParseMode " \
'{"chat_id": $chatid, "text": $text, "message_thread_id": $thread, "disable_notification": false, "parse_mode": $parse_mode, "disable_web_page_preview": true}' )
2025-06-24 09:16:48 -04:00
curl -S -o /dev/null ${ CurlArgs } -X POST " $TelegramUrl /sendMessage " -H 'Content-Type: application/json' -d " $JsonData "
if [ [ $? -gt 0 ] ] ; then
NotifyError = true
fi
2024-02-02 16:00:04 +01:00
}