mod/notification-telegram: RouterOS v7 path syntax

This commit is contained in:
Christian Hesse 2022-05-10 16:13:34 +02:00
parent 50a139248f
commit 20b5ca4918

View file

@ -17,14 +17,14 @@
:local AllDone true; :local AllDone true;
:local QueueLen [ :len $TelegramQueue ]; :local QueueLen [ :len $TelegramQueue ];
:if ([ :len [ / system scheduler find where name="FlushTelegramQueue" ] ] > 0 && $QueueLen = 0) do={ :if ([ :len [ /system/scheduler/find where name="FlushTelegramQueue" ] ] > 0 && $QueueLen = 0) do={
$LogPrintExit2 warning $0 ("Flushing Telegram messages from scheduler, but queue is empty.") false; $LogPrintExit2 warning $0 ("Flushing Telegram messages from scheduler, but queue is empty.") false;
} }
:foreach Id,Message in=$TelegramQueue do={ :foreach Id,Message in=$TelegramQueue do={
:if ([ :typeof $Message ] = "array" ) do={ :if ([ :typeof $Message ] = "array" ) do={
:do { :do {
/ tool fetch check-certificate=yes-without-crl output=none http-method=post \ /tool/fetch check-certificate=yes-without-crl output=none http-method=post \
("https://api.telegram.org/bot" . ($Message->"tokenid") . "/sendMessage") \ ("https://api.telegram.org/bot" . ($Message->"tokenid") . "/sendMessage") \
http-data=("chat_id=" . ($Message->"chatid") . \ http-data=("chat_id=" . ($Message->"chatid") . \
"&disable_notification=" . ($Message->"silent") . \ "&disable_notification=" . ($Message->"silent") . \
@ -39,7 +39,7 @@
} }
:if ($AllDone = true && $QueueLen = [ :len $TelegramQueue ]) do={ :if ($AllDone = true && $QueueLen = [ :len $TelegramQueue ]) do={
/ system scheduler remove [ find where name="FlushTelegramQueue" ]; /system/scheduler/remove [ find where name="FlushTelegramQueue" ];
:set TelegramQueue; :set TelegramQueue;
} }
} }
@ -125,7 +125,7 @@
:if ([ $CertificateAvailable "Go Daddy Secure Certificate Authority - G2" ] = false) do={ :if ([ $CertificateAvailable "Go Daddy Secure Certificate Authority - G2" ] = false) do={
$LogPrintExit2 warning $0 ("Downloading required certificate failed.") true; $LogPrintExit2 warning $0 ("Downloading required certificate failed.") true;
} }
/ tool fetch check-certificate=yes-without-crl output=none http-method=post \ /tool/fetch check-certificate=yes-without-crl output=none http-method=post \
("https://api.telegram.org/bot" . $TokenId . "/sendMessage") \ ("https://api.telegram.org/bot" . $TokenId . "/sendMessage") \
http-data=("chat_id=" . $ChatId . "&disable_notification=" . ($Notification->"silent") . \ http-data=("chat_id=" . $ChatId . "&disable_notification=" . ($Notification->"silent") . \
"&disable_web_page_preview=true&parse_mode=" . $ParseMode . "&text=" . $Text) as-value; "&disable_web_page_preview=true&parse_mode=" . $ParseMode . "&text=" . $Text) as-value;
@ -136,12 +136,12 @@
:set TelegramQueue [ :toarray "" ]; :set TelegramQueue [ :toarray "" ];
} }
:set Text ($Text . [ $UrlEncode ("\n" . [ $SymbolForNotification "alarm-clock" ] . \ :set Text ($Text . [ $UrlEncode ("\n" . [ $SymbolForNotification "alarm-clock" ] . \
[ $EscapeMD ("This message was queued since " . [ / system clock get date ] . \ [ $EscapeMD ("This message was queued since " . [ /system/clock/get date ] . \
" " . [ / system clock get time ] . " and may be obsolete.") "plain" ]) ]); " " . [ /system/clock/get time ] . " and may be obsolete.") "plain" ]) ]);
:set ($TelegramQueue->[ :len $TelegramQueue ]) { chatid=$ChatId; tokenid=$TokenId; :set ($TelegramQueue->[ :len $TelegramQueue ]) { chatid=$ChatId; tokenid=$TokenId;
parsemode=$ParseMode; text=$Text; silent=($Notification->"silent") }; parsemode=$ParseMode; text=$Text; silent=($Notification->"silent") };
:if ([ :len [ / system scheduler find where name="FlushTelegramQueue" ] ] = 0) do={ :if ([ :len [ /system/scheduler/find where name="FlushTelegramQueue" ] ] = 0) do={
/ system scheduler add name=FlushTelegramQueue interval=1m start-time=startup \ /system/scheduler/add name=FlushTelegramQueue interval=1m start-time=startup \
on-event=(":global FlushTelegramQueue; \$FlushTelegramQueue;"); on-event=(":global FlushTelegramQueue; \$FlushTelegramQueue;");
} }
} }