global-functions: add function to notify via e-mail and telegram

This commit is contained in:
Christian Hesse 2018-10-09 15:46:39 +02:00
parent 977a5d5f5e
commit 5e4ef0ab8f
2 changed files with 40 additions and 0 deletions

View file

@ -16,6 +16,11 @@
:global "email-backup-to" "mail@example.com";
:global "email-backup-cc" "";
# You can send Telegram notifications. Register a bot
# and add the token and chat ids here.
:global "telegram-tokenid" "123456:ABCDEF-GHI";
:global "telegram-chatid" "12345678";
# This defines what backups to generate and what password to use.
:global "backup-send-binary" false;
:global "backup-send-export" true;

View file

@ -45,3 +45,38 @@
:return $return;
}
# send notification via e-mail and telegram
# Note that subject and attachment are ignored for telegram!
:global SendNotification do={
:local subject $1;
:local message $2;
:local attach $3;
:global "email-general-to";
:global "email-general-cc";
:global "telegram-tokenid";
:global "telegram-chatid";
:if ([ :len $"email-general-to" ] > 0) do={
:do {
/ tool e-mail send to=$"email-general-to" cc=$"email-general-cc" \
subject=$subject body=$message file=$attach;
} on-error={
:log warning "Failed sending notification mail!";
}
}
# You need to import the certificate chain for api.telegram.org!
# https://certs.godaddy.com/repository/gdroot-g2.crt
# https://certs.godaddy.com/repository/gdig2.crt.pem
:if ([ :len $"telegram-tokenid" ] > 0 && [ :len $"telegram-chatid" ] > 0) do={
do {
/ tool fetch check-certificate=yes-without-crl keep-result=no http-method=post \
("https://api.telegram.org/bot" . $"telegram-tokenid" . "/sendMessage") \
http-data=("chat_id=" . $"telegram-chatid" . "&text=" . $message);
} on-error={
:log warning "Failed sending telegram notification!";
}
}
}