From: vados-dev <192440777+vados-dev@users.noreply.github.com> Date: Thu, 30 Apr 2026 21:35:03 +0000 (+0300) Subject: Autocommit in repo: ros.vados.ru, generated by owner: root, in 00:35:03 01.05.2026. X-Git-Url: https://git.vados.ru/gitweb.cgi?a=commitdiff_plain;h=6a1c0c0f8aba077adc59e6ff16756c55a75de6d1;p=Mikrotiks%2Fros.vados.ru.git Autocommit in repo: ros.vados.ru, generated by owner: root, in 00:35:03 01.05.2026. --- diff --git a/html/AM-GlobalFunc.rsc b/html/AM-GlobalFunc.rsc index 8afe83fd0..a30e4f6ee 100644 --- a/html/AM-GlobalFunc.rsc +++ b/html/AM-GlobalFunc.rsc @@ -17,9 +17,9 @@ :global GlobalFuncReady false; # Git commit id & info, expected configuration version -:global CommitId "main/318/cc6455ca"; +:global CommitId "main/319/8b20c54e"; :global CommitTAG "unknown"; -:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 00:30:03 01.05.2026."; +:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 00:35:03 01.05.2026."; # The variables are received right here. :global GlobalConfVersion 138; diff --git a/html/mod/AM-TG-Notifications.rsc b/html/mod/AM-TG-Notifications.rsc index 63bc2b292..de283f17d 100644 --- a/html/mod/AM-TG-Notifications.rsc +++ b/html/mod/AM-TG-Notifications.rsc @@ -12,7 +12,6 @@ :global PurgeTelegramQueue; :global SendTelegram; :global SendTelegram2; - # flush telegram queue :set FlushTelegramQueue do={ :onerror Err { :global TelegramQueue; @@ -20,7 +19,6 @@ :global CertificateAvailable; :global IsFullyConnected; :global LogPrint; - :if ([ $IsFullyConnected ] = false) do={ $LogPrint debug $0 ("System is not fully connected, not flushing."); :return false; @@ -29,7 +27,6 @@ $LogPrint warning $0 ("Downloading required certificate failed."); :return false; } - :local AllDone true; :local QueueLen [ :len $TelegramQueue ]; :if ([ :len [ /system/scheduler/find where name="_FlushTelegramQueue" ] ] > 0 && $QueueLen = 0) do={ @@ -56,7 +53,6 @@ } do={ :global ExitOnError; $ExitOnError $0 $Err; } } - # get the chat id :set GetTelegramChatId do={ :onerror Err { :global TelegramTokenId; @@ -93,7 +89,6 @@ # send notification via telegram - expects one array argument :set ($NotificationFunctions->"telegram") do={ :local Notification $1; - :global Identity; :global IdentityExtra; :global TelegramChatId; @@ -105,7 +100,6 @@ :global TelegramTokenId; :global TelegramTokenIdOverride; :global CertificateAvailable; - :global CharacterReplace; :global EitherOr; :global IfThenElse; @@ -113,15 +107,12 @@ :global ProtocolStrip; :global SymbolForNotification; :global UrlEncode; - :local EscapeMD do={ :local Text [ :tostr $1 ]; :local Mode [ :tostr $2 ]; :local Excl [ :tostr $3 ]; - :global CharacterReplace; :global IfThenElse; - :local Chars { "body"={ "\\"; "`" }; "plain"={ "_"; "*"; "["; "]"; "("; ")"; "~"; "`"; ">"; @@ -190,21 +181,18 @@ } } } - # purge the Telegram queue :set PurgeTelegramQueue do={ :global TelegramQueue; /system/scheduler/remove [ find where name="_FlushTelegramQueue" ]; :set TelegramQueue; } - # send notification via telegram - expects at least two string arguments :set SendTelegram do={ :onerror Err { :global SendTelegram2; $SendTelegram2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 }); -} do={:global ExitOnError; $ExitOnError $0 $Err} -} - +} do={:global ExitOnError; $ExitOnError $0 $Err. +} } # send notification via telegram - expects one array argument :set SendTelegram2 do={ :local Notification $1; diff --git a/html/mod/AM-TG-Notifications.rsc.diff b/html/mod/AM-TG-Notifications.rsc.diff index 63a688a44..d5f762323 100644 --- a/html/mod/AM-TG-Notifications.rsc.diff +++ b/html/mod/AM-TG-Notifications.rsc.diff @@ -1,87 +1,43 @@ -19a20 -> -27a29 -> -34a37 -> -37a41 -> -51a56 -> -57c62 +54c54 < :global ExitOnError; $ExitOnError $0 $Err; --- > :global ExitOnError; $ExitOnError $0 $Err; -62a68 -> -64a71 -> -68a76 -> -77a86 -> -79a89 -> -83a94 -> -90c101 +86c86 < :global ExitOnError; $ExitOnError $0 $Err; --- > :global ExitOnError; $ExitOnError $0 $Err; -107d117 -< :global CertificateAvailable; -108a119 -> :global CertificateAvailable; -135c146,150 +88d87 +< +126c125,127 < :if ($Mode = "body") do={:return ("```\n" . $Text . "\n```")} --- -> > :if ($Mode = "body") do={ > :return ("```\n" . $Text . "\n```"); > } -> -137a153 -> -144,145c160,168 +135,136c136,141 < :if ([ :len $TokenId ] = 0 || [ :len $ChatId ] = 0) do={:return false} < :if ([ :typeof $TelegramMessageIDs ] = "nothing") do={:set TelegramMessageIDs ({})} --- -> > :if ([ :len $TokenId ] = 0 || [ :len $ChatId ] = 0) do={ > :return false; > } -> > :if ([ :typeof $TelegramMessageIDs ] = "nothing") do={ > :set TelegramMessageIDs ({}); > } -> -156c179,181 +147c152,154 < } else={:set Text ($Text . [ $EscapeMD ($Notification->"message") "body" ])} --- > } else={ > :set Text ($Text . [ $EscapeMD ($Notification->"message") "body" ]); > } -166a192 -> -181c207,210 +172c179,181 < :if ([ :typeof $TelegramQueue ] = "nothing") do={:set TelegramQueue ({})} --- -> > :if ([ :typeof $TelegramQueue ] = "nothing") do={ > :set TelegramQueue ({}); > } -196a226 -> -203a234 -> -205,206c236,238 -< } do={:global ExitOnError; $ExitOnError $0 $Err} -< } +194c203,204 +< } do={:global ExitOnError; $ExitOnError $0 $Err. --- > } do={ > :global ExitOnError; $ExitOnError $0 $Err; -> } } -210a243 -> -211a245 -> diff --git a/html/mod/notification-telegram.rsc b/html/mod/notification-telegram.rsc index 84f4bc98d..884ccb993 100644 --- a/html/mod/notification-telegram.rsc +++ b/html/mod/notification-telegram.rsc @@ -12,33 +12,26 @@ :global PurgeTelegramQueue; :global SendTelegram; :global SendTelegram2; - # flush telegram queue :set FlushTelegramQueue do={ :onerror Err { :global TelegramQueue; :global TelegramMessageIDs; - :global CertificateAvailable; :global IsFullyConnected; :global LogPrint; - :if ([ $IsFullyConnected ] = false) do={ $LogPrint debug $0 ("System is not fully connected, not flushing."); :return false; } - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :return false; } - :local AllDone true; :local QueueLen [ :len $TelegramQueue ]; - :if ([ :len [ /system/scheduler/find where name="_FlushTelegramQueue" ] ] > 0 && $QueueLen = 0) do={ $LogPrint warning $0 ("Flushing Telegram messages from scheduler, but queue is empty."); } - :foreach Id,Message in=$TelegramQueue do={ :if ([ :typeof $Message ] = "array" ) do={ :onerror Err { @@ -53,7 +46,6 @@ } } } - :if ($AllDone = true && $QueueLen = [ :len $TelegramQueue ]) do={ /system/scheduler/remove [ find where name="_FlushTelegramQueue" ]; :set TelegramQueue; @@ -61,19 +53,15 @@ } do={ :global ExitOnError; $ExitOnError $0 $Err; } } - # get the chat id :set GetTelegramChatId do={ :onerror Err { :global TelegramTokenId; - :global CertificateAvailable; :global LogPrint; - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :return false; } - :local Data; :onerror Err { :set Data ([ /tool/fetch check-certificate=yes-without-crl output=user \ @@ -83,15 +71,12 @@ $LogPrint warning $0 ("Fetching data failed: " . $Err); :return false; } - :local JSON [ :deserialize from=json value=$Data ]; :local Count [ :len ($JSON->"result") ]; - :if ($Count = 0) do={ $LogPrint info $0 ("No message received."); :return false; } - :local Message ($JSON->"result"->($Count - 1)->"message"); $LogPrint info $0 ("The chat id is: " . ($Message->"chat"->"id")); :if (($Message->"is_topic_message") = true) do={ @@ -100,11 +85,9 @@ } do={ :global ExitOnError; $ExitOnError $0 $Err; } } - # send notification via telegram - expects one array argument :set ($NotificationFunctions->"telegram") do={ :local Notification $1; - :global Identity; :global IdentityExtra; :global TelegramChatId; @@ -115,7 +98,6 @@ :global TelegramThreadIdOverride; :global TelegramTokenId; :global TelegramTokenIdOverride; - :global CertificateAvailable; :global CharacterReplace; :global EitherOr; @@ -124,15 +106,12 @@ :global ProtocolStrip; :global SymbolForNotification; :global UrlEncode; - :local EscapeMD do={ :local Text [ :tostr $1 ]; :local Mode [ :tostr $2 ]; :local Excl [ :tostr $3 ]; - :global CharacterReplace; :global IfThenElse; - :local Chars { "body"={ "\\"; "`" }; "plain"={ "_"; "*"; "["; "]"; "("; ")"; "~"; "`"; ">"; @@ -143,29 +122,23 @@ :set Text [ $CharacterReplace $Text $Char ("\\" . $Char) ]; } } - :if ($Mode = "body") do={ :return ("```\n" . $Text . "\n```"); } - :return $Text; } - :local ChatId [ $EitherOr ($Notification->"chatid") \ [ $EitherOr ($TelegramChatIdOverride->($Notification->"origin")) $TelegramChatId ] ]; :local ThreadId [ $EitherOr ($Notification->"threadid") \ [ $EitherOr ($TelegramThreadIdOverride->($Notification->"origin")) \ [ $IfThenElse ([ :len ($TelegramChatIdOverride->($Notification->"origin")) ] = 0) $TelegramThreadId ] ] ]; :local TokenId [ $EitherOr ($TelegramTokenIdOverride->($Notification->"origin")) $TelegramTokenId ]; - :if ([ :len $TokenId ] = 0 || [ :len $ChatId ] = 0) do={ :return false; } - :if ([ :typeof $TelegramMessageIDs ] = "nothing") do={ :set TelegramMessageIDs ({}); } - :local Truncated false; :local Text ("*__" . [ $EscapeMD ("[" . $IdentityExtra . $Identity . "] " . \ ($Notification->"subject")) "plain" ] . "__*\n\n"); @@ -189,7 +162,6 @@ [ $EscapeMD ("The message was too long and has been truncated, cut off _" . \ (($LenSum - [ :len $Text ]) * 100 / $LenSum) . "%_!") "plain" "_" ]); } - :local HTTPData ("chat_id=" . $ChatId . "&disable_notification=" . ($Notification->"silent") . \ "&reply_to_message_id=" . ($Notification->"replyto") . "&message_thread_id=" . $ThreadId . \ "&disable_web_page_preview=true&parse_mode=MarkdownV2"); @@ -204,7 +176,6 @@ :set ($TelegramMessageIDs->[ :tostr ([ :deserialize from=json value=$Data ]->"result"->"message_id") ]) 1; } do={ $LogPrint info $0 ("Failed sending Telegram notification: " . $Err . " - Queuing..."); - :if ([ :typeof $TelegramQueue ] = "nothing") do={ :set TelegramQueue ({}); } @@ -219,29 +190,22 @@ } } } - # purge the Telegram queue :set PurgeTelegramQueue do={ :global TelegramQueue; - /system/scheduler/remove [ find where name="_FlushTelegramQueue" ]; :set TelegramQueue; } - # send notification via telegram - expects at least two string arguments :set SendTelegram do={ :onerror Err { :global SendTelegram2; - $SendTelegram2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 }); } do={ :global ExitOnError; $ExitOnError $0 $Err; } } - # send notification via telegram - expects one array argument :set SendTelegram2 do={ :local Notification $1; - :global NotificationFunctions; - ($NotificationFunctions->"telegram") ("\$NotificationFunctions->\"telegram\"") $Notification; }