рдЯреЗрд▓реАрдЧреНрд░рд╛рдо v 2.0 рд╕реЗ рдорд┐рдХрд░реЛрдЯрд┐рдХ рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рд░рд┐рдореЛрдЯ рд╕рдорд╛рд╡реЗрд╢

рдкрд┐рдЫрд▓реЗ рдЕрд╡рдХрд╛рд╢ рдХреЗ рд╕рд╛рде рд╕рднреАред рдпрд╣ рд╡рд┐рд╖рдп рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ 2016 рдореЗрдВ рдпрд╣рд╛рдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦреЗ рдЧрдП рдПрдХ рдмреЗрд╣рддрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд╛рдо рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдмрд┐рдирд╛ рджреЗрд░реА рдХреЗ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдорд┐рдХрд░реЛрдЯрд┐рдХ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреЙрдЯрд┐рдб рдФрд░ рдЪреИрдЯрдЖрдИрдбреА рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рддреЗ рд╣реИрдВред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП "рд╕реНрдЯрд╛рд░реНрдЯ рдЯрд╛рдЗрдо" рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ (рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ)ред
рдЕрдВрддрд░рд╛рд▓: 00:00:00
рдЕрдиреНрдпрдерд╛, рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рд╡рд╣ рдерд╛ред

рдЯреЗрд▓реАрдЧреНрд░рд╛рдо-рд╡реА 2
: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 рдорд┐рдирдЯ рдореЗрдВ рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдмреЙрдЯрд┐рдб рдФрд░ рдЪреИрдЯрдЖрдИрдбреА рдХреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрджрд▓рддреЗ рд╣реИрдВред

рд╕реВрдЪрд┐рдд-рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ
 :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 } } 


рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:

рдЫрд╡рд┐

Source: https://habr.com/ru/post/hi482802/


All Articles