Last active
June 1, 2021 16:07
-
-
Save medival/777cfae4a8fd68a96fc28435e119aca6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/system script | |
add dont-require-permissions=no name=tg_cmd_diamond owner=admin policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local apname\r\ | |
\n:set apname \"Diamond\"\r\ | |
\n:local ipaddr\r\ | |
\n:set ipaddr 10.110.111.11\r\ | |
\n\r\ | |
\n#Ping Variables\r\ | |
\n:local avgRtt;\r\ | |
\n:local pin\r\ | |
\n:local pout\r\ | |
\n:local datetime \"\$[/system clock get date] \$[/system clock get time]\ | |
\"\r\ | |
\n#Ping it real good\r\ | |
\n/tool flood-ping \$ipaddr count=10 do={\r\ | |
\n:if (\$sent = 10) do={\r\ | |
\n:set avgRtt \$\"avg-rtt\"\r\ | |
\n:set pout \$sent\r\ | |
\n:set pin \$received\r\ | |
\n }\r\ | |
\n}\r\ | |
\n:local ploss (100 - ((\$pin * 100) / \$pout))\r\ | |
\n:local logmsg (\"Ping for \$ipaddr - \".[:tostr \$avgRtt].\"ms - packet \ | |
loss: \".[:tostr \$ploss].\"%\")\r\ | |
\n:log info \$logmsg\r\ | |
\n:local text \"Result Ping Access Point *\$apname* %0A\\\r\ | |
\nDate : _\$datetime_%0A\\\r\ | |
\nAP Identity: \$apname - _\$ipaddr_%0A\\\r\ | |
\nResult: _\$logmsg_\"\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true" | |
add dont-require-permissions=no name=tg_cmd_ruby owner=admin policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local apname\r\ | |
\n:set apname \"Ruby\"\r\ | |
\n:local ipaddr\r\ | |
\n:set ipaddr 10.110.111.12\r\ | |
\n\r\ | |
\n#Ping Variables\r\ | |
\n:local avgRtt;\r\ | |
\n:local pin\r\ | |
\n:local pout\r\ | |
\n:local datetime \"\$[/system clock get date] \$[/system clock get time]\ | |
\"\r\ | |
\n#Ping it real good\r\ | |
\n/tool flood-ping \$ipaddr count=10 do={\r\ | |
\n:if (\$sent = 10) do={\r\ | |
\n:set avgRtt \$\"avg-rtt\"\r\ | |
\n:set pout \$sent\r\ | |
\n:set pin \$received\r\ | |
\n }\r\ | |
\n}\r\ | |
\n:local ploss (100 - ((\$pin * 100) / \$pout))\r\ | |
\n:local logmsg (\"Ping for \$ipaddr - \".[:tostr \$avgRtt].\"ms - packet \ | |
loss: \".[:tostr \$ploss].\"%\")\r\ | |
\n:log info \$logmsg\r\ | |
\n:local text \"Result Ping Access Point *\$apname* %0A\\\r\ | |
\nDate : _\$datetime_%0A\\\r\ | |
\nAP Identity: \$apname - _\$ipaddr_%0A\\\r\ | |
\nResult: _\$logmsg_\"\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true" | |
add dont-require-permissions=no name=tg_cmd_zamrud owner=admin policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local apname\r\ | |
\n:set apname \"Zamrud\"\r\ | |
\n:local ipaddr\r\ | |
\n:set ipaddr 10.110.111.13\r\ | |
\n\r\ | |
\n#Ping Variables\r\ | |
\n:local avgRtt;\r\ | |
\n:local pin\r\ | |
\n:local pout\r\ | |
\n:local datetime \"\$[/system clock get date] \$[/system clock get time]\ | |
\"\r\ | |
\n#Ping it real good\r\ | |
\n/tool flood-ping \$ipaddr count=10 do={\r\ | |
\n:if (\$sent = 10) do={\r\ | |
\n:set avgRtt \$\"avg-rtt\"\r\ | |
\n:set pout \$sent\r\ | |
\n:set pin \$received\r\ | |
\n }\r\ | |
\n}\r\ | |
\n:local ploss (100 - ((\$pin * 100) / \$pout))\r\ | |
\n:local logmsg (\"Ping for \$ipaddr - \".[:tostr \$avgRtt].\"ms - packet \ | |
loss: \".[:tostr \$ploss].\"%\")\r\ | |
\n:log info \$logmsg\r\ | |
\n:local text \"Result Ping Access Point *\$apname* %0A\\\r\ | |
\nDate : _\$datetime_%0A\\\r\ | |
\nAP Identity: \$apname - _\$ipaddr_%0A\\\r\ | |
\nResult: _\$logmsg_\"\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true" | |
add dont-require-permissions=no name=tg_cmd_kalimaya owner=admin policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local apname\r\ | |
\n:set apname \"Kalimaya\"\r\ | |
\n:local ipaddr\r\ | |
\n:set ipaddr 10.110.111.14\r\ | |
\n\r\ | |
\n#Ping Variables\r\ | |
\n:local avgRtt;\r\ | |
\n:local pin\r\ | |
\n:local pout\r\ | |
\n:local datetime \"\$[/system clock get date] \$[/system clock get time]\ | |
\"\r\ | |
\n#Ping it real good\r\ | |
\n/tool flood-ping \$ipaddr count=10 do={\r\ | |
\n:if (\$sent = 10) do={\r\ | |
\n:set avgRtt \$\"avg-rtt\"\r\ | |
\n:set pout \$sent\r\ | |
\n:set pin \$received\r\ | |
\n }\r\ | |
\n}\r\ | |
\n:local ploss (100 - ((\$pin * 100) / \$pout))\r\ | |
\n:local logmsg (\"Ping for \$ipaddr - \".[:tostr \$avgRtt].\"ms - packet \ | |
loss: \".[:tostr \$ploss].\"%\")\r\ | |
\n:log info \$logmsg\r\ | |
\n:local text \"Result Ping Access Point *\$apname* %0A\\\r\ | |
\nDate : _\$datetime_%0A\\\r\ | |
\nAP Identity: \$apname - _\$ipaddr_%0A\\\r\ | |
\nResult: _\$logmsg_\"\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true" | |
add dont-require-permissions=no name=tg_cmd_saphire owner=admin policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local apname\r\ | |
\n:set apname \"Saphire\"\r\ | |
\n:local ipaddr\r\ | |
\n:set ipaddr 10.110.111.10\r\ | |
\n\r\ | |
\n#Ping Variables\r\ | |
\n:local avgRtt;\r\ | |
\n:local pin\r\ | |
\n:local pout\r\ | |
\n:local datetime \"\$[/system clock get date] \$[/system clock get time]\ | |
\"\r\ | |
\n#Ping it real good\r\ | |
\n/tool flood-ping \$ipaddr count=10 do={\r\ | |
\n:if (\$sent = 10) do={\r\ | |
\n:set avgRtt \$\"avg-rtt\"\r\ | |
\n:set pout \$sent\r\ | |
\n:set pin \$received\r\ | |
\n }\r\ | |
\n}\r\ | |
\n:local ploss (100 - ((\$pin * 100) / \$pout))\r\ | |
\n:local logmsg (\"Ping for \$ipaddr - \".[:tostr \$avgRtt].\"ms - packet \ | |
loss: \".[:tostr \$ploss].\"%\")\r\ | |
\n:log info \$logmsg\r\ | |
\n:local text \"Result Ping Access Point *\$apname* %0A\\\r\ | |
\nDate : _\$datetime_%0A\\\r\ | |
\nAP Identity: \$apname - _\$ipaddr_%0A\\\r\ | |
\nResult: _\$logmsg_\"\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true" | |
add dont-require-permissions=no name=tg_getUpdates owner=medival policy=\ | |
ftp,reboot,read,write,policy,test,sniff,sensitive,romon source=":global TG\ | |
LASTMSGID\r\ | |
\n:global TGLASTUPDID\r\ | |
\n\r\ | |
\n:local fconfig [:parse [/system script get tg_config source]]\r\ | |
\n:local http [:parse [/system script get func_fetch source]]\r\ | |
\n:local gkey [:parse [/system script get tg_getkey source]]\r\ | |
\n:local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n\r\ | |
\n:local cfg [\$fconfig]\r\ | |
\n:local trusted [:toarray (\$cfg->\"trusted\")]\r\ | |
\n:local botID (\$cfg->\"botAPI\")\r\ | |
\n:local storage (\$cfg->\"storage\")\r\ | |
\n:local timeout (\$cfg->\"timeout\")\r\ | |
\n\r\ | |
\n:put \"cfg=\$cfg\"\r\ | |
\n:put \"trusted=\$trusted\"\r\ | |
\n:put \"botID=\$botID\"\r\ | |
\n:put \"storage=\$storage\"\r\ | |
\n:put \"timeout=\$timeout\"\r\ | |
\n\r\ | |
\n:local file (\$storage.\"tg_get_updates.txt\")\r\ | |
\n:local logfile (\$storage.\"tg_fetch_log.txt\")\r\ | |
\n#get 1 message per time\r\ | |
\n:local url (\"https://api.telegram.org/bot\".\$botID.\"/getUpdates\?time\ | |
out=\$timeout&limit=1\")\r\ | |
\n:if ([:len \$TGLASTUPDID]>0) do={\r\ | |
\n :set url \"\$url&offset=\$(\$TGLASTUPDID+1)\"\r\ | |
\n}\r\ | |
\n\r\ | |
\n:put \"Reading updates...\"\r\ | |
\n:local res [\$http dst-path=\$file url=\$url resfile=\$logfile]\r\ | |
\n:if (\$res!=\"success\") do={\r\ | |
\n :put \"Error getting updates\"\r\ | |
\n return \"Failed get updates\"\r\ | |
\n}\r\ | |
\n:put \"Finished to read updates.\"\r\ | |
\n\r\ | |
\n:local content [/file get [/file find name=\$file] contents]\r\ | |
\n\r\ | |
\n:local msgid [\$gkey key=\"message_id\" text=\$content]\r\ | |
\n:if (\$msgid=\"\") do={ \r\ | |
\n :put \"No new updates\"\r\ | |
\n :return 0 \r\ | |
\n}\r\ | |
\n:set TGLASTMSGID \$msgid\r\ | |
\n\r\ | |
\n:local updid [\$gkey key=\"update_id\" text=\$content]\r\ | |
\n:set TGLASTUPDID \$updid\r\ | |
\n\r\ | |
\n:local fromid [\$gkey block=\"from\" key=\"id\" text=\$content]\r\ | |
\n:local username [\$gkey block=\"from\" key=\"username\" text=\$content]\ | |
\r\ | |
\n:local firstname [\$gkey block=\"from\" key=\"first_name\" text=\$conten\ | |
t]\r\ | |
\n:local lastname [\$gkey block=\"from\" key=\"last_name\" text=\$content]\ | |
\r\ | |
\n:local chatid [\$gkey block=\"chat\" key=\"id\" text=\$content]\r\ | |
\n:local chattext [\$gkey block=\"chat\" key=\"text\" text=\$content]\r\ | |
\n\r\ | |
\n:put \"message id=\$msgid\"\r\ | |
\n:put \"update id=\$updid\"\r\ | |
\n:put \"from id=\$fromid\"\r\ | |
\n:put \"first name=\$firstname\"\r\ | |
\n:put \"last name=\$lastname\"\r\ | |
\n:put \"username=\$username\"\r\ | |
\n:local name \"\$firstname \$lastname\"\r\ | |
\n:if ([:len \$name]<2) do {\r\ | |
\n :set name \$username\r\ | |
\n}\r\ | |
\n\r\ | |
\n:put \"in chat=\$chatid\"\r\ | |
\n:put \"command=\$chattext\"\r\ | |
\n\r\ | |
\n:local allowed ( [:type [:find \$trusted \$fromid]]!=\"nil\" or [:type [\ | |
:find \$trusted \$chatid]]!=\"nil\")\r\ | |
\n:if (!\$allowed) do={\r\ | |
\n :put \"Unknown sender, keep silence\"\r\ | |
\n :return -1\r\ | |
\n}\r\ | |
\n\r\ | |
\n:local cmd \"\"\r\ | |
\n:local params \"\"\r\ | |
\n:local ltext [:len \$chattext]\r\ | |
\n\r\ | |
\n:local pos [:find \$chattext \" \"]\r\ | |
\n:if ([:type \$pos]=\"nil\") do={\r\ | |
\n :set cmd [:pick \$chattext 1 \$ltext]\r\ | |
\n} else={\r\ | |
\n :set cmd [:pick \$chattext 1 \$pos]\r\ | |
\n :set params [:pick \$chattext (\$pos+1) \$ltext]\r\ | |
\n}\r\ | |
\n\r\ | |
\n:local pos [:find \$cmd \"@\"]\r\ | |
\n:if ([:type \$pos]!=\"nil\") do={\r\ | |
\n :set cmd [:pick \$cmd 0 \$pos]\r\ | |
\n}\r\ | |
\n\r\ | |
\n\r\ | |
\n:put \"cmd=<\$cmd>\"\r\ | |
\n\r\ | |
\n:local alternativeCommand {\"hi\"=\"help\"; \"start\"=\"help\"; \"bantua\ | |
n\"=\"help\"; \"hello\"=\"help\"; \"halo\"=\"help\"; \"hai\"=\"help\"; \"h\ | |
s\"=\"hotspot\"; \"iface\"=\"interface\";\\\r\ | |
\n \"hotspotenable\"=\"enablehotspot\"; \"hotspot\ | |
disable\"=\"disablehotspot\"; \"monitor\"=\"monitoring\"; \"berhenti\"=\"s\ | |
top\"; \"watch\"=\"monitoring\";\\\r\ | |
\n \"restart\"=\"reboot\"}\r\ | |
\n:if ([:typeof (\$alternativeCommand -> \$cmd)] = \"str\") do={:set cmd (\ | |
\$alternativeCommand -> \$cmd); :put \"cmd=<\$cmd>\"}\r\ | |
\n\r\ | |
\n:put \"params=<\$params>\"\r\ | |
\n\r\ | |
\n:global TGLASTCMD \$cmd\r\ | |
\n\r\ | |
\n:put \"Try to invoke external script tg_cmd_\$cmd\"\r\ | |
\n:local script [:parse [/system script get \"tg_cmd_\$cmd\" source]]\r\ | |
\n\$script params=\$params chatid=\$chatid from=\$name" | |
add dont-require-permissions=no name=func_fetch owner=medival policy=\ | |
ftp,read,write,policy,test source="#######################################\ | |
##################\r\ | |
\n# Wrapper for /tools fetch\r\ | |
\n# Input:\r\ | |
\n# mode\r\ | |
\n# upload=yes/no\r\ | |
\n# user\r\ | |
\n# password\r\ | |
\n# address\r\ | |
\n# host\r\ | |
\n# httpdata\r\ | |
\n# httpmethod\r\ | |
\n# check-certificate\r\ | |
\n# src-path\r\ | |
\n# dst-path\r\ | |
\n# ascii=yes/no\r\ | |
\n# url\r\ | |
\n# resfile\r\ | |
\n\r\ | |
\n:local res \"fetchresult.txt\"\r\ | |
\n:if ([:len \$resfile]>0) do={:set res \$resfile}\r\ | |
\n#:put \$res\r\ | |
\n\r\ | |
\n:local cmd \"/tool fetch\"\r\ | |
\n:if ([:len \$mode]>0) do={:set cmd \"\$cmd mode=\$mode\"}\r\ | |
\n:if ([:len \$upload]>0) do={:set cmd \"\$cmd upload=\$upload\"}\r\ | |
\n:if ([:len \$user]>0) do={:set cmd \"\$cmd user=\\\"\$user\\\"\"}\r\ | |
\n:if ([:len \$password]>0) do={:set cmd \"\$cmd password=\\\"\$password\\\ | |
\"\"}\r\ | |
\n:if ([:len \$address]>0) do={:set cmd \"\$cmd address=\\\"\$address\\\"\ | |
\"}\r\ | |
\n:if ([:len \$host]>0) do={:set cmd \"\$cmd host=\\\"\$host\\\"\"}\r\ | |
\n:if ([:len \$\"http-data\"]>0) do={:set cmd \"\$cmd http-data=\\\"\$\"ht\ | |
tp-data\"\\\"\"}\r\ | |
\n:if ([:len \$\"http-method\"]>0) do={:set cmd \"\$cmd http-method=\\\"\$\ | |
\"http-method\"\\\"\"}\r\ | |
\n:if ([:len \$\"check-certificate\"]>0) do={:set cmd \"\$cmd check-certif\ | |
icate=\\\"\$\"check-certificate\"\\\"\"}\r\ | |
\n:if ([:len \$\"src-path\"]>0) do={:set cmd \"\$cmd src-path=\\\"\$\"src-\ | |
path\"\\\"\"}\r\ | |
\n:if ([:len \$\"dst-path\"]>0) do={:set cmd \"\$cmd dst-path=\\\"\$\"dst-\ | |
path\"\\\"\"}\r\ | |
\n:if ([:len \$ascii]>0) do={:set cmd \"\$cmd ascii=\\\"\$ascii\\\"\"}\r\ | |
\n:if ([:len \$url]>0) do={:set cmd \"\$cmd url=\\\"\$url\\\"\"}\r\ | |
\n\r\ | |
\n:put \">> \$cmd\"\r\ | |
\n\r\ | |
\n:global FETCHRESULT\r\ | |
\n:set FETCHRESULT \"none\"\r\ | |
\n\r\ | |
\n:local script \"\\\r\ | |
\n :global FETCHRESULT;\\\r\ | |
\n :do {\\\r\ | |
\n \$cmd;\\\r\ | |
\n :set FETCHRESULT \\\"success\\\";\\\r\ | |
\n } on-error={\\\r\ | |
\n :set FETCHRESULT \\\"failed\\\";\\\r\ | |
\n }\\\r\ | |
\n\"\r\ | |
\n:execute script=\$script file=\$res\r\ | |
\n:local cnt 0\r\ | |
\n#:put \"\$cnt -> \$FETCHRESULT\"\r\ | |
\n:while (\$cnt<100 and \$FETCHRESULT=\"none\") do={ \r\ | |
\n :delay 1s\r\ | |
\n :set \$cnt (\$cnt+1)\r\ | |
\n #:put \"\$cnt -> \$FETCHRESULT\"\r\ | |
\n}\r\ | |
\n:local content [/file get [find name=\$res] content]\r\ | |
\n#:put \$content\r\ | |
\nif (\$content~\"finished\") do={:return \"success\"}\r\ | |
\n:return \$FETCHRESULT" | |
add dont-require-permissions=no name=tg_getkey owner=medival policy=read \ | |
source=":local cur 0\r\ | |
\n:local lkey [:len \$key]\r\ | |
\n:local res \"\"\r\ | |
\n:local p\r\ | |
\n\r\ | |
\n:if ([:len \$block]>0) do={\r\ | |
\n :set p [:find \$text \$block \$cur]\r\ | |
\n :if ([:type \$p]=\"nil\") do={\r\ | |
\n :return \$res\r\ | |
\n }\r\ | |
\n :set cur (\$p+[:len \$block]+2)\r\ | |
\n}\r\ | |
\n\r\ | |
\n:set p [:find \$text \$key \$cur]\r\ | |
\n:if ([:type \$p]!=\"nil\") do={\r\ | |
\n :set cur (\$p+lkey+2)\r\ | |
\n :set p [:find \$text \",\" \$cur]\r\ | |
\n :if ([:type \$p]!=\"nil\") do={\r\ | |
\n if ([:pick \$text \$cur]=\"\\\"\") do={\r\ | |
\n :set res [:pick \$text (\$cur+1) (\$p-1)]\r\ | |
\n } else={\r\ | |
\n :set res [:pick \$text \$cur \$p]\r\ | |
\n }\r\ | |
\n } \r\ | |
\n}\r\ | |
\n:return \$res" | |
add dont-require-permissions=no name=tg_sendMessage owner=medival policy=read \ | |
source=":local fconfig [:parse [/system script get tg_config source]]\r\ | |
\n\r\ | |
\n:local cfg [\$fconfig]\r\ | |
\n:local chatID (\$cfg->\"defaultChatID\")\r\ | |
\n:local botID (\$cfg->\"botAPI\")\r\ | |
\n:local storage (\$cfg->\"storage\")\r\ | |
\n\r\ | |
\n:if ([:len \$chat]>0) do={:set chatID \$chat}\r\ | |
\n\r\ | |
\n:local url \"https://api.telegram.org/bot\$botID/sendmessage\?chat_id=\$\ | |
chatID&text=\$text\"\r\ | |
\n:if ([:len \$mode]>0) do={:set url (\$url.\"&parse_mode=\$mode\")}\r\ | |
\n\r\ | |
\n:local file (\$tgStorage.\"tg_get_updates.txt\")\r\ | |
\n:local logfile (\$tgStorage.\"tg_fetch_log.txt\")\r\ | |
\n\r\ | |
\n/tool fetch url=\$url keep-result=no" | |
add dont-require-permissions=no name=tg_cmd_cpu owner=medival policy=read \ | |
source=":local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n:local hotspot [:len [/ip hotspot active find]]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n \r\ | |
\n:local text \"Router ID:* \$[/system identity get name] * %0A\\\r\ | |
\nUptime: _\$[/system resource get uptime]_%0A\\\r\ | |
\nCPU Load: _\$[/system resource get cpu-load]%_%0A\\\r\ | |
\nRAM: _\$(([/system resource get total-memory]-[/system resource get free\ | |
-memory])/(1024*1024))M/\$([/system resource get total-memory]/(1024*1024)\ | |
)M_\"\r\ | |
\n \r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true" | |
add dont-require-permissions=no name=tg_cmd_public owner=medival policy=read \ | |
source=":local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local public;\r\ | |
\n\ | |
\n:local ddns;\r\ | |
\n\ | |
\n:set public [/ip cloud get public-address];\r\ | |
\n\ | |
\n:set ddns [/ip cloud get dns-name];\r\ | |
\n\ | |
\n:local text \"DDNS : \$ddns : IP Public : \$public\"\r\ | |
\n\r\ | |
\n\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"" | |
add dont-require-permissions=no name=tg_config owner=medival policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ | |
#####################################\r\ | |
\n# Telegram bot API, VVS/BlackVS 2017\r\ | |
\n# Config file\r\ | |
\n######################################\r\ | |
\n:log info \"telegram configuration file has been loaded\";\r\ | |
\n\r\ | |
\n# to use config insert next lines:\r\ | |
\n#:local fconfig [:parse [/system script get tg_config source]]\r\ | |
\n#:local config [\$fconfig]\r\ | |
\n#:put \$config\r\ | |
\n\r\ | |
\n######################################\r\ | |
\n# Common parameters\r\ | |
\n######################################\r\ | |
\n\r\ | |
\n:local config {\r\ | |
\n\"Command\"=\"telegram\";\r\ | |
\n\t\"botAPI\"=\"1884166054:AAEVAAWCMHh5l4e0h9bH2cyKQCVe7eCHe1A\";\r\ | |
\n\t\"defaultChatID\"=\"478602468\";\r\ | |
\n\t\"trusted\"=\"478602468\";\r\ | |
\n\t\"storage\"=\"\";\r\ | |
\n\t\"timeout\"=5;\r\ | |
\n\t\"refresh_active\"=15;\r\ | |
\n\t\"refresh_standby\"=300;\r\ | |
\n}\r\ | |
\nreturn \$config" | |
add dont-require-permissions=no name=reboot-report owner=medival policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local reportBody \"\"\r\ | |
\n \r\ | |
\n:local deviceName [/system identity get name]\r\ | |
\n:local deviceDate [/system clock get date]\r\ | |
\n:local deviceTime [/system clock get time]\r\ | |
\n:local hwModel [/system routerboard get model]\r\ | |
\n:local rosVersion [/system package get system version]\r\ | |
\n:local currentFirmware [/system routerboard get current-firmware]\r\ | |
\n:local upgradeFirmware [/system routerboard get upgrade-firmware]\r\ | |
\n \r\ | |
\n \r\ | |
\n:set reportBody (\$reportBody . \"Router Reboot Report for \$deviceName%\ | |
0A\")\r\ | |
\n:set reportBody (\$reportBody . \"Report generated on \$deviceDate at \$\ | |
deviceTime%0A%0A\")\r\ | |
\n \r\ | |
\n:set reportBody (\$reportBody . \"Hardware Model: \$hwModel%0A\")\r\ | |
\n:set reportBody (\$reportBody . \"RouterOS Version: \$rosVersion%0A\")\r\ | |
\n:set reportBody (\$reportBody . \"Current Firmware: \$currentFirmware%0A\ | |
\")\r\ | |
\n:set reportBody (\$reportBody . \"Upgrade Firmware: \$upgradeFirmware\")\ | |
\r\ | |
\nif ( \$currentFirmware < \$upgradeFirmware) do={\r\ | |
\n:set reportBody (\$reportBody . \"NOTE: You should upgrade the RouterBOA\ | |
RD firmware!%0A\")\r\ | |
\n}\r\ | |
\n \r\ | |
\n:set reportBody (\$reportBody . \"%0A%0A=== Critical Log Events ===%0A\"\ | |
\_)\r\ | |
\n \r\ | |
\n:local x\r\ | |
\n:local ts\r\ | |
\n:local msg\r\ | |
\nforeach i in=([/log find where topics~\"critical\"]) do={\r\ | |
\n:set \$ts [/log get \$i time]\r\ | |
\n:set \$msg [/log get \$i message]\r\ | |
\n:set \$reportBody (\$reportBody . \$ts . \" \" . \$msg . \"%0A\" )\r\ | |
\n}\r\ | |
\n \r\ | |
\n:set reportBody (\$reportBody . \"%0A=== end of report ===%0A\")\r\ | |
\n\$send chat=\$chatid text=\$reportBody mode=\"Markdown\"" | |
add dont-require-permissions=no name=tg_cmd_reboot owner=medival policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local text \"Menghidupkan ulang router dalam 30 detik...\"\r\ | |
\n\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n\r\ | |
\n:delay 30\r\ | |
\nsystem reboot" | |
add dont-require-permissions=no name=func_lowercase owner=medival policy=read \ | |
source="local alphabet {\"A\"=\"a\";\"B\"=\"b\";\"C\"=\"c\";\"D\"=\"d\";\"\ | |
E\"=\"e\";\"F\"=\"f\";\"G\"=\"g\";\"H\"=\"h\";\"I\"=\"i\";\"J\"=\"j\";\"K\ | |
\"=\"k\";\"L\"=\"l\";\"M\"=\"m\";\"N\"=\"n\";\"O\"=\"o\";\"P\"=\"p\";\"Q\"\ | |
=\"q\";\"R\"=\"r\";\"S\"=\"s\";\"T\"=\"t\";\"U\"=\"u\";\"V\"=\"v\";\"X\"=\ | |
\"x\";\"Z\"=\"z\";\"Y\"=\"y\";\"W\"=\"w\"};\r\ | |
\n:local result\r\ | |
\n:local character\r\ | |
\n:for strings from=0 to=([:len \$1] - 1) do={\r\ | |
\n\t:local single [:pick \$1 \$strings]\r\ | |
\n\t:set character (\$alphabet->\$single)\r\ | |
\n\t:if ([:typeof \$character] = \"str\") do={set single \$character}\r\ | |
\n\t:set result (\$result.\$single)\r\ | |
\n}\r\ | |
\n:return \$result" | |
add dont-require-permissions=no name=tg_cmd_stop owner=medival policy=read \ | |
source=":global monitoring;\r\ | |
\n:set monitoring false;\r\ | |
\n:delay 5s;\r\ | |
\n/system script environment remove monitoring;\r\ | |
\n" | |
add dont-require-permissions=no name=tg_cmd_help owner=medival policy=read \ | |
source=":local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:local text \"Router ID:*\$[/system identity get name]*%0A\\\r\ | |
\n________________________%0A\\\r\ | |
\nCommand List%0A\\\r\ | |
\n________________________%0A\\\r\ | |
\n/help%0A\\\r\ | |
\n/start%0A\\\r\ | |
\n/cpu%0A\\\r\ | |
\n/ping to <ip>%0A\\\r\ | |
\n/public%0A\\\r\ | |
\n/reboot%0A\\\r\ | |
\n%0A\\\r\ | |
\nCommand Status Access Point%0A\\\r\ | |
\n________________________%0A\\\r\ | |
\n/saphire%0A\\\r\ | |
\n/diamond%0A\\\r\ | |
\n/ruby%0A\\\r\ | |
\n/zamrud%0A\\\r\ | |
\n/kalimaya%0A\\\r\ | |
\n\"\r\ | |
\n\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true" | |
add dont-require-permissions=no name=tg_cmd_ping owner=admin policy=\ | |
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | |
local send [:parse [/system script get tg_sendMessage source]]\r\ | |
\n:local param1 [:pick \$params 0 [:find \$params \" \"]]\r\ | |
\n:local param2 [:pick \$params ([:find \$params \" \"]+1) [:len \$params]\ | |
]\r\ | |
\n\r\ | |
\n:put \$params\r\ | |
\n:put \$param1\r\ | |
\n:put \$param2\r\ | |
\n:put \$chatid\r\ | |
\n:put \$from\r\ | |
\n\r\ | |
\n:if (\$param1=\"to\") do={\r\ | |
\n#Ping Variables\r\ | |
\n:local avgRtt;\r\ | |
\n:local pin\r\ | |
\n:local pout\r\ | |
\n:local datetime \"\$[/system clock get date] \$[/system clock get time]\ | |
\"\r\ | |
\n#Ping it real good\r\ | |
\n/tool flood-ping \$param2 count=10 do={\r\ | |
\n \r\ | |
\n:if (\$sent = 10) do={\r\ | |
\n \r\ | |
\n:set avgRtt \$\"avg-rtt\"\r\ | |
\n \r\ | |
\n:set pout \$sent\r\ | |
\n \r\ | |
\n:set pin \$received\r\ | |
\n }\r\ | |
\n\r\ | |
\n}\r\ | |
\n\r\ | |
\n:local ploss (100 - ((\$pin * 100) / \$pout))\r\ | |
\n\r\ | |
\n:local logmsg (\"Ping Average for \$param2 - \".[:tostr \$avgRtt].\"ms -\ | |
\_packet loss: \".[:tostr \$ploss].\"%\")\r\ | |
\n\r\ | |
\n:log info \$logmsg\r\ | |
\n\r\ | |
\n:local text \"Router ID:* \$[/system identity get name] * %0A\\\r\ | |
\nDate : _\$datetime_%0A\\\r\ | |
\nIP: _\$param2_%0A\\\r\ | |
\nResult:%0A_\$logmsg_\"\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true\r\ | |
\n} else={\r\ | |
\n#Ping Variables\r\ | |
\n:local avgRtt;\r\ | |
\n:local pin\r\ | |
\n:local pout\r\ | |
\n:local datetime \"\$[/system clock get date] \$[/system clock get time]\ | |
\"\r\ | |
\n#Ping it real good\r\ | |
\n/tool flood-ping 8.8.8.8 count=10 do={\r\ | |
\n \r\ | |
\n:if (\$sent = 10) do={\r\ | |
\n \r\ | |
\n:set avgRtt \$\"avg-rtt\"\r\ | |
\n \r\ | |
\n:set pout \$sent\r\ | |
\n \r\ | |
\n:set pin \$received\r\ | |
\n }\r\ | |
\n\r\ | |
\n}\r\ | |
\n\r\ | |
\n:local ploss (100 - ((\$pin * 100) / \$pout))\r\ | |
\n\r\ | |
\n:local logmsg (\"Ping Average for 8.8.8.8 - \".[:tostr \$avgRtt].\"ms - \ | |
packet loss: \".[:tostr \$ploss].\"%\")\r\ | |
\n\r\ | |
\n:log info \$logmsg\r\ | |
\n\r\ | |
\n:local text \"Router ID:* \$[/system identity get name] * %0A\\\r\ | |
\nDate : _\$datetime_%0A\\\r\ | |
\nIP: _8.8.8.8_%0A\\\r\ | |
\nResult:%0A_\$logmsg_\"\r\ | |
\n\$send chat=\$chatid text=\$text mode=\"Markdown\"\r\ | |
\n:return true\r\ | |
\n}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment