د ټیلیګرام v 2.0 څخه د مایکروټیک سکریپټونو ریموټ فعالول

ټولو ته دی اختر مبارک وی. دا موضوع غوره ده د هغه څه نسخه چې ما په 2016 کې لیکلې دلته دلته.

په عموم کې، د عملیاتو اصول نه دي بدل شوي، یوازینی توپیر دا دی چې اوس پرته له ځنډه کار کوي.

موږ سکریپټ مایکروټیک ته اپلوډ کوو، BotID او ChatID خپل ځان ته بدلوو او د دې لپاره مهالویش جوړوو. د پیل کولو لپاره د "پیل وخت" پیرامیټر تنظیم کړئ (په پیل کې سکریپټ چل کړئ.)
"انټروال": 00:00:00
که نه نو هرڅه لکه څنګه چې وو.

ټیلیګرام-v2

:delay 10
:global mtIdentity [/system identity get name];
:global botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:global myChatID "YYYYYY" ;
:local chatId 0;
:local messageId 0;


:local parse do={
  :local startLoc ([:find $content $variable -1] + [:len $variable] + 2);
  :local commaLoc ([:find $content "," $startLoc] - 1 + 1);
  :local braceLoc ([:find $content "}" $startLoc] - 1 + 1);
  :local endLoc $commaLoc;
  :local startSymbol [:pick $content $startLoc]
  :if ($braceLoc != 0 and ($commaLoc = 0 or $braceLoc < $commaLoc)) do={
    :set endLoc $braceLoc;
  };
  :if ($startSymbol = "{") do={
    :set endLoc ($braceLoc + 1);
  };
  :if ($quotas = true) do={
    :set startLoc ($startLoc + 1);
    :set endLoc ($endLoc - 1);
  }
  :if ($endLoc < $startLoc) do={
    :set endLoc ($startLoc + 1);
  };
  :local message [:pick $content $startLoc $endLoc]
  #:log info $message;
  :return $message;
}


:while ( true ) do={
  :do {
    #:log info "https://api.telegram.org/$botID/getUpdates?offset=$messageId&limit=1&allowed_updates=message&timeout=60";
    :tool fetch url=("https://api.telegram.org/$botID/getUpdates?offset=$messageId&limit=1&allowed_updates=message&timeout=60") dst-path="getUpdates";
    :local content [/file get [/file find name=getUpdates] contents] ;
    #:log info $content;
    :if ([:len $content] > 30) do={
      :set messageId ([$parse content=$content variable="update_id"] + 1)
      :local message [$parse content=$content variable="text" quotas=true]
      :local chat [$parse content=$content variable="chat"]
      :local chatId [$parse content=$chat variable="id"]      
      
      :if (($chatId = $myChatID) and ([/system script find name=$message] != "")) do={
        :system script run $message;
      } else={
        :tool fetch url=("https://api.telegram.org/$botID/sendmessage?chat_id=$chatId&text=$mtIdentity: Unknown command: $message") keep-result=no
      }
    }
  } on-error={}
};

د څو کلونو کارولو وروسته، یو بګ وموندل شو: د یو نامعلوم دلیل لپاره، ضعیف مایکروټیک سکریپټ ودروي، مګر په ډیرو پیاوړو کسانو کې دا پرته له ځنډه کار کوي.

د دې اهدافو لپاره ، ما د واچ ډاګ کرچ باندې وغورځاوه. دلته موږ د سکریپټ نوم هغه ته بدلوو چې پورته یې اشاره کړې. او د بیا پیل کولو وقفه 5 دقیقو ته وټاکئ. په هرو 5 دقیقو کې زموږ "څارګر" به سکریپټ وګوري او که دا کار ونه کړي، دا به یې چلوي.

WatchDogT.me

:global scriptname "t.me"
:if ([:len [/system script job find script=$"scriptname"]] > 0) do={
:log info "$scriptname Already Running - killing old script before continuing"
:foreach counter in=[/system script job find script=$"scriptname"] do={
/system script job remove $counter
}
}
/system script run $scriptname

ښه، د خوږ لپاره، سکریپټ د مایکروټیک فورم څخه اخیستل شوی.
زموږ کارټ ته د لاګ څخه مهم موضوعات لیږي.

موږ سکریپټ په مهالویش کې اضافه کوو او په هر 5 دقیقو کې د بیا پیل کولو وقفه مشخص کوو ، BotID او ChatID خپل ځان ته بدلوو.

خبرتیا-لاګ

:global lastTime
:global output
:global mtIdentity [/system identity get name];
:global botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:global myChatID "YYYYYY" ;

:local LogGet [ :toarray [ /log find topics~"critical" || message~"login failure" || message~"[Ff]ailure" ] ] ;
:local LogtLineCount [ :len $LogGet ] ;
if ($LogtLineCount > 0) do={
   :local currentTime "$[ /log get [ :pick $LogGet ($LogtLineCount -1) ] time ]";
   :if ([:len $currentTime] = 10 ) do={
      :set currentTime [ :pick $currentTime 0 10 ];
   }
   :set output "$currentTime - $[/log get [ :pick $LogGet ($LogtLineCount-1) ] message ]";
   :if (([:len $lastTime] < 1) || (([:len $lastTime] > 0) && ($lastTime != $currentTime))) do={
      :set lastTime $currentTime ;
         :tool fetch url=("https://api.telegram.org/$botID/sendmessage?chat_id=$myChatID&text="$mtIdentity" :  $output") keep-result=no
   }
}

موږ پایله ترلاسه کوو:

د ټیلیګرام v 2.0 څخه د مایکروټیک سکریپټونو ریموټ فعالول

سرچینه: www.habr.com

Add a comment