telegram-chat: use :deserialize ...

... instead of $ParseJson. This requires RouterOS 7.13.
This commit is contained in:
Christian Hesse 2024-03-28 22:33:49 +01:00
parent c01a424f4f
commit 7e5010a608

View file

@ -34,7 +34,6 @@
:global MAX; :global MAX;
:global MIN; :global MIN;
:global MkDir; :global MkDir;
:global ParseJson;
:global RandomDelay; :global RandomDelay;
:global ScriptLock; :global ScriptLock;
:global SendTelegram2; :global SendTelegram2;
@ -86,18 +85,18 @@
:error false; :error false;
} }
:local JSON [ :deserialize from=json value=$Data ];
:local UpdateID 0; :local UpdateID 0;
:local Uptime [ /system/resource/get uptime ]; :local Uptime [ /system/resource/get uptime ];
:foreach UpdateArray in=([ $ParseJson $Data ]->"result") do={ :foreach Update in=($JSON->"result") do={
:local Update [ $ParseJson $UpdateArray ];
:set UpdateID ($Update->"update_id"); :set UpdateID ($Update->"update_id");
:local Message [ $ParseJson ($Update->"message") ]; :local Message ($Update->"message");
:local IsReply [ :len ($Message->"reply_to_message") ]; :local IsReply [ :len ($Message->"reply_to_message") ];
:local IsMyReply ($TelegramMessageIDs->([ $ParseJson ($Message->"reply_to_message") ]->"message_id")); :local IsMyReply ($TelegramMessageIDs->[ :tostr ($Message->"reply_to_message"->"message_id") ]);
:if (($IsMyReply = 1 || $TelegramChatOffset->0 > 0 || $Uptime > 5m) && $UpdateID >= $TelegramChatOffset->2) do={ :if (($IsMyReply = 1 || $TelegramChatOffset->0 > 0 || $Uptime > 5m) && $UpdateID >= $TelegramChatOffset->2) do={
:local Trusted false; :local Trusted false;
:local Chat [ $ParseJson ($Message->"chat") ]; :local Chat ($Message->"chat");
:local From [ $ParseJson ($Message->"from") ]; :local From ($Message->"from");
:foreach IdsTrusted in=($TelegramChatId, $TelegramChatIdsTrusted) do={ :foreach IdsTrusted in=($TelegramChatId, $TelegramChatIdsTrusted) do={
:if ($From->"id" = $IdsTrusted || $From->"username" = $IdsTrusted) do={ :if ($From->"id" = $IdsTrusted || $From->"username" = $IdsTrusted) do={