aboutsummaryrefslogtreecommitdiffstats
path: root/global-functions
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2018-10-09 16:48:54 +0200
committerGravatar Christian Hesse <mail@eworm.de>2018-10-09 16:56:29 +0200
commitcec61183eb254db328c35733e42324f13abf9224 (patch)
tree38dcfaae8320a2da0c154ea0c844e79666a2d475 /global-functions
parent2e64b97888c5c2a9c82a0ec7d618825db40c05c8 (diff)
global-functions: add UrlEncode and use in SendNotification
Diffstat (limited to 'global-functions')
-rw-r--r--global-functions26
1 files changed, 25 insertions, 1 deletions
diff --git a/global-functions b/global-functions
index 8eba595..e3dceff 100644
--- a/global-functions
+++ b/global-functions
@@ -46,6 +46,28 @@
:return $return;
}
+# url encoding
+:global UrlEncode do={
+ :local return "";
+
+ :if ([ :len $1 ] > 0) do={
+ :local chars " %&";
+ :local subs { "%20"; "%25"; "%26" };
+
+ :for i from=0 to=([ :len $1 ] - 1) do={
+ :local char [ :pick $1 $i ];
+ :local replace [ :find $chars $char ];
+
+ :if ([ :len $replace ] > 0) do={
+ :set $char ($subs->$replace);
+ }
+ :set $return ($return . $char);
+ }
+ }
+
+ :return $return;
+}
+
# send notification via e-mail and telegram
# Note that subject and attachment are ignored for telegram!
:global SendNotification do={
@@ -58,6 +80,8 @@
:global "telegram-tokenid";
:global "telegram-chatid";
+ :global UrlEncode;
+
:if ([ :len $"email-general-to" ] > 0) do={
:do {
/ tool e-mail send to=$"email-general-to" cc=$"email-general-cc" \
@@ -74,7 +98,7 @@
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);
+ http-data=("chat_id=" . $"telegram-chatid" . "&text=" . [ $UrlEncode $message ]);
} on-error={
:log warning "Failed sending telegram notification!";
}