From: vados-dev <192440777+vados-dev@users.noreply.github.com> Date: Mon, 4 May 2026 06:30:03 +0000 (+0300) Subject: Autocommit in repo: ros.vados.ru, generated by owner: root, in 09:30:03 04.05.2026. X-Git-Url: https://git.vados.ru/gitweb.cgi?a=commitdiff_plain;h=47072049f8454ea7547bbe08a993aa333aa0a11f;p=Mikrotiks%2Fros.vados.ru.git Autocommit in repo: ros.vados.ru, generated by owner: root, in 09:30:03 04.05.2026. --- diff --git a/html/AM-GlobalFunc.rsc b/html/AM-GlobalFunc.rsc index efc53aca3..7c2037177 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/533/c2ac9dd7"; +:global CommitId "main/534/4c2d0f51"; :global CommitTAG "unknown"; -:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 09:10:03 04.05.2026."; +:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 09:30:03 04.05.2026."; # The variables are received right here. :global GlobalConfVersion 138; @@ -730,7 +730,7 @@ :set CheckCert [ $IfThenElse ($CheckCert = "false") "no" "yes-without-crl" ]; :local DirName ("tmpfs/" . [ $CleanName $ScriptName ]); :if ([ $MkDir $DirName ] = false) do={ - $LogPrint error $0 ("Failed creating directory!"); + :log error ($0 . " Failed creating directory!"); :return false; } :local FileName ($DirName . "/" . [ $CleanName $0 ] . "-" . [ $GetRandom20CharAlNum ]); @@ -741,12 +741,12 @@ :if ([ $WaitForFile $FileName 500ms ] = true) do={ $RmFile $FileName; } - $LogPrint debug $0 ("Failed downloading from " . $Url . " - " . $Err); + :log debug ($0 . " Failed downloading from " . $Url . " - " . $Err); $RmDir $DirName; :return false; } :if ([ $WaitForFile $FileName 5s ] = false) do={ - $LogPrint debug $0 ("The file downloaded from " . $Url . " did not show up."); + :log debug ($0 . " The file downloaded from " . $Url . " did not show up."); :return false; } :local FileSize [ /file/get $FileName size ]; @@ -764,7 +764,6 @@ :return $Return; } - :set FetchUserAgentStr do={ :local Caller [ :tostr $1 ]; @@ -923,9 +922,12 @@ :set FileGet do={ :local FileName [ :tostr $1 ]; :global WaitForFile; - :if ([ $WaitForFile $FileName 0s ] = false) do={:return false} + :if ([ $WaitForFile $FileName 0s ] = false) do={ + :return false; + } :local FileVal false; - :do {:set FileVal [ /file/get $FileName ]; + :do { + :set FileVal [ /file/get $FileName ]; } on-error={ } :return $FileVal; } @@ -933,27 +935,43 @@ :set RmDir do={ :local DirName [ :tostr $1 ]; :global FileGet; - :global LogPrint; - $LogPrint debug $0 ("Removing directory: ". $DirName); + :log debug ($0 . " Removing directory: ". $DirName); :local DirVal [ $FileGet $DirName ]; - :if ($DirVal = false) do={$LogPrint debug $0 ("... which does not exist."); :return true}; - :if ($DirVal->"type" != "directory") do={$LogPrint error $0 ("Directory '" . $DirName . "' is not a directory."); :return false}; - :onerror Err {/file/remove $DirName} do={$LogPrint error $0 ("Removing directory '" . $DirName . "' failed: " . $Err); :return false}; + :if ($DirVal = false) do={ + :log debug ($0 . " ... which does not exist."); + :return true; + }; + :if ($DirVal->"type" != "directory") do={ + :log error ($0 . " Directory '" . $DirName . "' is not a directory."); + :return false; + }; + :onerror Err { + /file/remove $DirName; + } do={ + :log error ($0 . " Removing directory '" . $DirName . "' failed: " . $Err); + :return false; + }; :return true; } :set RmFile do={ :local FileName [ :tostr $1 ]; :global FileGet; - :global LogPrint; - $LogPrint debug $0 ("Removing file: ". $FileName); + :log debug ($0 . " Removing file: ". $FileName); :local FileVal [ $FileGet $FileName ]; - :if ($FileVal = false) do={$LogPrint debug $0 ("... which does not exist."); :return true} + :if ($FileVal = false) do={ + :log debug ($0 . " ... which does not exist."); + :return true; + } :if ($FileVal->"type" = "directory" || $FileVal->"type" = "disk") do={ - $LogPrint error $0 ("File '" . $FileName . "' is not a file."); :return false} + :log error ($0 . " File '" . $FileName . "' is not a file."); + :return false; + } :onerror Err { /file/remove $FileName; - } do={$LogPrint error $0 ("Removing file '" . $FileName . "' failed: " . $Err); :return false} + } do={ + :log error ($0 . " Removing file '" . $FileName . "' failed: " . $Err); :return false; + } :return true; } @@ -963,24 +981,24 @@ :global FileGet; :global RmDir; :global WaitForFile; - :global LogPrint; + :local MkTmpfs do={ :global WaitForFile; :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ]; :if ([ :len $TmpFs ] = 1) do={ :if ([ /disk/get $TmpFs disabled ] = true) do={ - $LogPrint info $0 ("The tmpfs is disabled, enabling."); + :log info ($0 . " The tmpfs is disabled, enabling."); /disk/enable $TmpFs; } :return true; } - $LogPrint info $0 ("Creating disk of type tmpfs."); + :log info ($0 . " Creating disk of type tmpfs."); $RmDir "tmpfs"; :onerror Err { /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/get total-memory ] / 3); $WaitForFile "tmpfs"; } do={ - $LogPrint warning $0 ("Creating disk of type tmpfs failed: " . $Err); + :log warning ($0 . " Creating disk of type tmpfs failed: " . $Err); :return false; } :return true; @@ -989,10 +1007,10 @@ :if ($Path = "") do={ :return true; } - $LogPrint debug $0 ("Making directory: " . $Path); + :log debug ($0 . " Making directory: " . $Path); :local PathVal [ $FileGet $Path ]; :if ($PathVal->"type" = "directory") do={ - $LogPrint debug $0 ("... which already exists."); + :log debug ($0 . " ... which already exists."); :return true; } :if ([ :pick $Path 0 5 ] = "tmpfs") do={ @@ -1004,7 +1022,7 @@ /file/add type="directory" name=$Path; $WaitForFile $Path; } do={ - $LogPrint warning $0 ("Making directory '" . $Path . "' failed: " . $Err); + :log warning ($0 . " Making directory '" . $Path . "' failed: " . $Err); :return false; } :return true; @@ -1087,15 +1105,14 @@ :local Required [ :tostr $2 ]; :local Warn [ :tostr $3 ]; :global IfThenElse; - :global LogPrint; :global VersionToNum; :if (!($Required ~ "^\\d+\\.\\d+((alpha|beta|rc|\\.)\\d+|)\$")) do={ - $LogPrint error $0 ("No valid RouterOS version: " . $Required); + :log error ($0 . " No valid RouterOS version: " . $Required); :return false; } :if ([ $VersionToNum $Required ] > [ $VersionToNum [ /system/package/update/get installed-version ] ]) do={ :if ($Warn = "true") do={ - $LogPrint warning $0 ("This " . [ $IfThenElse ([ :pick $Caller 0 ] = ("\$")) "function" "script" ] . \ + :log warning ($0 . " This " . [ $IfThenElse ([ :pick $Caller 0 ] = ("\$")) "function" "script" ] . \ " '" . $Caller . "' (at least specific functionality) requires RouterOS " . $Required . ". Please update!"); } :return false; @@ -1134,7 +1151,6 @@ :local WaitMax [ :totime $2 ]; :global GetRandom20CharAlNum; :global IfThenElse; - :global LogPrint; :global ScriptLockOrder; :if ([ :typeof $ScriptLockOrder ] = "nothing") do={ :set ScriptLockOrder ({}); @@ -1197,7 +1213,7 @@ } :if ([ :typeof $WaitMax ] = "nil" ) do={:set WaitMax 0s} :if ([ :len [ /system/script/find where name=$Script ] ] = 0) do={ - $LogPrint error $0 ("A script named '" . $Script . "' does not exist!"); + :log error ($0 . " A script named '" . $Script . "' does not exist!"); :error false; } :if ([ $JobCount $Script ] = 0) do={ @@ -1205,7 +1221,7 @@ :error false; } :if ([ $TicketCount $Script ] >= [ $JobCount $Script ]) do={ - $LogPrint error $0 ("More tickets than running scripts '" . $Script . "', resetting!"); + :log error ($0 . " More tickets than running scripts '" . $Script . "', resetting!"); :set ($ScriptLockOrder->$Script) ({}); /system/script/job/remove [ find where script=$Script ]; } @@ -1230,11 +1246,13 @@ [ $IfThenElse ($WaitTime < $WaitMax) " and timed out waiting for lock" "" ] . "..."); :return false; } + :set SendNotification do={ :onerror Err { :global SendNotification2; $SendNotification2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 }); } do={:global ExitOnError; $ExitOnError $0 $Err} } + :set SendNotification2 do={ :local Notification $1; :global NotificationFunctions; @@ -1242,10 +1260,10 @@ ($NotificationFunctions->$FunctionName) ("\$NotificationFunctions->\"" . $FunctionName . "\"") $Notification; } } + :set SymbolByUnicodeName do={ :local Name [ :tostr $1 ]; :global EitherOr; - :global LogPrint; :global SymbolsExtra; :local Symbols ({ "abacus"="\F0\9F\A7\AE"; @@ -1291,11 +1309,12 @@ "large-orange-circle-10-31"="\F0\9F\8E\83"; "large-red-circle-04-01"="\F0\9F\8D\92" }; :if ([ :len ($Symbols->$Name) ] = 0) do={ - $LogPrint warning $0 ("No symbol available for name '" . $Name . "'!"); + :log warning ($0 . "No symbol available for name '" . $Name . "'!"); :return ""; } :return ([ $EitherOr ($Special->($Name . $Magic)) ($Symbols->$Name) ] . "\EF\B8\8F"); } + :set SymbolForNotification do={ :global NotificationsWithSymbols; :global SymbolByUnicodeName; @@ -1305,6 +1324,7 @@ :foreach Symbol in=[ :toarray $1 ] do={:set Return ($Return . [ $SymbolByUnicodeName $Symbol ])} :return ($Return . " "); } + :set Unix2Dos do={:return [ :tocrlf [ :tostr $1 ] ]} :set UrlEncode do={ :local Input [ :tostr $1 ]; @@ -1322,21 +1342,23 @@ } :return $Return; } + :set ValidateSyntax do={ :local Code [ :tostr $1 ]; - :global LogPrint; :onerror Err { [ :parse (":local Validate do={\n" . $Code . "\n}") ]; } do={ - $LogPrint debug $0 ("Valdation failed: " . $Err); + :log debug ($0 . "Validation failed: " . $Err); :return false; } :return true; } + :set IsDNSResolving do={ :do {:resolve "api.telegram.org"} on-error={:return false} :return true; } + :set IsFullyConnected do={ :global IsDNSResolving; :global IsTimeSync; @@ -1344,6 +1366,7 @@ :if ([ $IsTimeSync ] = false) do={:return false}; :return true; } + :set IsTimeSync do={ :global IsTimeSyncCached; :global IsTimeSyncResetNtp;