mirror of
https://github.com/eworm-de/routeros-scripts
synced 2024-05-14 10:04:19 +02:00
Compare commits
6 commits
189608fd81
...
9162f13b80
Author | SHA1 | Date | |
---|---|---|---|
9162f13b80 | |||
b286cb6803 | |||
872abbea7d | |||
860acffbdb | |||
e83154c9c3 | |||
361933b2c0 |
|
@ -29,8 +29,8 @@ $ScriptLock $0;
|
|||
:global Identity;
|
||||
:global SentLteFirmwareUpgradeNotification;
|
||||
|
||||
:global CharacterReplace;
|
||||
:global FormatLine;
|
||||
:global IfThenElse;
|
||||
:global LogPrintExit2;
|
||||
:global ScriptFromTerminal;
|
||||
:global SendNotification2;
|
||||
|
@ -84,7 +84,9 @@ $ScriptLock $0;
|
|||
subject=([ $SymbolForNotification "sparkles" ] . "LTE firmware upgrade"); \
|
||||
message=("A new firmware version " . ($Firmware->"latest") . " is available for " . \
|
||||
"LTE interface " . $IntName . " on " . $Identity . ".\n\n" . \
|
||||
[ $FormatLine "Interface" [ $CharacterReplace ($Info->"manufacturer" . " " . $Info->"model") ("\"") "" ] ] . "\n" . \
|
||||
[ $IfThenElse ([ :len ($Info->"manufacturer") ] > 0) ([ $FormatLine "Manufacturer" ($Info->"manufacturer") ] . "\n") ] . \
|
||||
[ $IfThenElse ([ :len ($Info->"model") ] > 0) ([ $FormatLine "Model" ($Info->"model") ] . "\n") ] . \
|
||||
[ $IfThenElse ([ :len ($Info->"revision") ] > 0) ([ $FormatLine "Revision" ($Info->"revision") ] . "\n") ] . \
|
||||
"Firmware version:\n" . \
|
||||
[ $FormatLine " Installed" ($Firmware->"installed") ] . "\n" . \
|
||||
[ $FormatLine " Available" ($Firmware->"latest") ]); silent=true });
|
||||
|
|
|
@ -12,6 +12,7 @@ This script upgrades LTE firmware on compatible devices:
|
|||
* R11e-LTE-US
|
||||
* R11e-4G
|
||||
* R11e-LTE6
|
||||
* ... and more - probably what ever Mikrotik builds into their devices
|
||||
|
||||
A temporary scheduler is created to be independent from terminal. Thus
|
||||
starting the upgrade process over the broadband connection is supported.
|
||||
|
|
124
mod/dns-adblock
Normal file
124
mod/dns-adblock
Normal file
|
@ -0,0 +1,124 @@
|
|||
#!rsc by RouterOS
|
||||
|
||||
:global UpdateAdblock;
|
||||
:global HelpAdblock;
|
||||
:global ShowAdblockHost;
|
||||
:global AddAdblockHost;
|
||||
:global RemoveAdblockHost;
|
||||
|
||||
:global RunAdblockHost do={
|
||||
# store hostlist as script
|
||||
:if ([:len [/system script find where name=adblockhostlist]] = 0) do={
|
||||
/system script add name=adblockhostlist source=":global AdblockHost"
|
||||
}
|
||||
:if ($1 = "update") do={
|
||||
:global NewAdblockHost;
|
||||
/system script set [find where name=adblockhostlist] source=(":global AdblockHost $NewAdblockHost");
|
||||
}
|
||||
/system script run adblockhostlist
|
||||
}
|
||||
|
||||
:set $HelpAdblock do={
|
||||
:local HelpAdblockList {\
|
||||
"\$UpdateAdblock - Update static DNS entries";\
|
||||
"\$ShowAdblockHost - Show current sources";\
|
||||
"\$AddAdblockHost [URL] - Add new sources, eg: https://adaway.org/hosts.txt";\
|
||||
"\$RemoveAdblockHost [Number] - Remove specified source, eg: 0"\
|
||||
}
|
||||
:foreach x in=$HelpAdblockList do={
|
||||
:put $x
|
||||
}
|
||||
}
|
||||
|
||||
:set $ShowAdblockHost do={
|
||||
:global AdblockHost;
|
||||
:if ([:len $AdblockHost] = 0) do={
|
||||
:error "No source found"
|
||||
}
|
||||
:foreach x,y in=$AdblockHost do={
|
||||
:put ("$x $y")
|
||||
}
|
||||
}
|
||||
|
||||
:set $AddAdblockHost do={
|
||||
:if ([:len $1] < 1) do={
|
||||
:error "No URL specified!"
|
||||
}
|
||||
:global AdblockHost;
|
||||
:global RunAdblockHost;
|
||||
:global NewAdblockHost;
|
||||
:local CurAdblockHost;
|
||||
:if ([:len $AdblockHost] != 0) do={
|
||||
:foreach x in=$AdblockHost do={
|
||||
:set CurAdblockHost ("$CurAdblockHost\"$x\";")
|
||||
}
|
||||
:set NewAdblockHost ("{$CurAdblockHost\"$1\"}")
|
||||
} else={
|
||||
:set NewAdblockHost "{\"$1\"}"
|
||||
}
|
||||
$RunAdblockHost "update"
|
||||
:put ("Added new source: $1")
|
||||
}
|
||||
|
||||
:set $RemoveAdblockHost do={
|
||||
:if ([:len $1] < 1) do={
|
||||
:error "No number specified!"
|
||||
}
|
||||
:global AdblockHost;
|
||||
:global RunAdblockHost;
|
||||
:global NewAdblockHost;
|
||||
:local CurAdblockHost;
|
||||
:if ([:len $AdblockHost] = 0) do={
|
||||
:error "No source found"
|
||||
}
|
||||
:foreach x,y in=$AdblockHost do={
|
||||
:if ($x != $1) do={
|
||||
:set CurAdblockHost ("$CurAdblockHost\"$y\";")
|
||||
} else={
|
||||
:put ("Removed source: $y")
|
||||
}
|
||||
}
|
||||
:if ([:len $AdblockHost] <= 1) do={
|
||||
:set AdblockHost ""
|
||||
:set NewAdblockHost ""
|
||||
} else={
|
||||
:set NewAdblockHost ("{$CurAdblockHost}")
|
||||
}
|
||||
$RunAdblockHost "update"
|
||||
}
|
||||
|
||||
:set $UpdateAdblock do={
|
||||
:global AdblockHost;
|
||||
:if ([:len $AdblockHost] = 0) do={
|
||||
:error "Add source first!"
|
||||
}
|
||||
:local AdblockHostList;
|
||||
:foreach x in=$AdblockHost do={
|
||||
:set AdblockHostList ("$AdblockHostList$x,")
|
||||
}
|
||||
:set $AdblockHostList [:pick $AdblockHostList 0 ([:len $AdblockHostList]-1)]
|
||||
# https://github.com/tarampampam/mikrotik-hosts-parser
|
||||
:local parserVer "4.4.0";
|
||||
:local adblockLimit "5000";
|
||||
:local redirectTo "127.0.0.1";
|
||||
:local excludedHost "localhost,localhost.localdomain,broadcasthost,local,ip6-localhost,ip6-loopback,ip6-localnet,ip6-mcastprefix,ip6-allnodes,ip6-allrouters,ip6-allhosts";
|
||||
:local hostScriptUrl ("https://stopad.cgood.ru/script/source\?format=routeros&version=$parserVer&redirect_to=$redirectTo&limit=$adblockLimit&sources_urls=$AdblockHostList&excluded_hosts=$excludedHost");
|
||||
:local scriptName "stop_ad.script";
|
||||
do {
|
||||
/tool fetch check-certificate=no mode=https url=$hostScriptUrl dst-path=$scriptName
|
||||
:delay 3s;
|
||||
} on-error={
|
||||
:error "Fetch source failed"
|
||||
}
|
||||
:if ([:find [/file get $scriptName contents] "Script generation failed"]) do={
|
||||
:error "Invalid/unsupported source"
|
||||
} else={
|
||||
/ip dns static remove [/ip dns static find comment=ADBlock]
|
||||
/import file-name=$scriptName
|
||||
/file remove $scriptName
|
||||
:put "Static DNS entries updated successfully"
|
||||
}
|
||||
}
|
||||
|
||||
# Initialize adblockhostlist
|
||||
$RunAdblockHost
|
|
@ -79,7 +79,8 @@ $ScriptLock $0;
|
|||
:if ([ $IsDNSResolving ] = true) do={
|
||||
:do {
|
||||
:local Resolve [ :resolve ($HostInfo->"resolve") ];
|
||||
:if ($Resolve != $HostVal->"host") do={
|
||||
:if ($Resolve != $HostVal->"host" and \
|
||||
[ :len [ /ip/dns/cache/find where name=($HostInfo->"resolve") data=[ :tostr ($HostVal->"host") ] ] ] = 0) do={
|
||||
$LogPrintExit2 info $0 ("Name '" . $HostInfo->"resolve" . [ $IfThenElse \
|
||||
($HostInfo->"resolve" != $HostInfo->"name") ("' for " . $Type . " '" . \
|
||||
$HostInfo->"name") "" ] . "' resolves to different address " . $Resolve . \
|
||||
|
|
|
@ -24,13 +24,17 @@
|
|||
:set LTEFirmwareUpgrade;
|
||||
|
||||
/system/scheduler/remove ($1 . "-firmware-upgrade");
|
||||
/interface/lte/firmware-upgrade $1 upgrade=yes;
|
||||
:log info ("LTE firmware upgrade on '" . $1 . "' finished, waiting for reset.");
|
||||
:delay 240s;
|
||||
:local Firmware [ /interface/lte/firmware-upgrade $1 once as-value ];
|
||||
:if (($Firmware->"installed") != ($Firmware->"latest")) do={
|
||||
:log warning ("LTE firmware versions still differ. Resetting again...");
|
||||
/interface/lte/at-chat $1 input="AT+RESET";
|
||||
:do {
|
||||
/interface/lte/firmware-upgrade $1 upgrade=yes;
|
||||
:log info ("LTE firmware upgrade on '" . $1 . "' finished, waiting for reset.");
|
||||
:delay 240s;
|
||||
:local Firmware [ /interface/lte/firmware-upgrade $1 once as-value ];
|
||||
:if (($Firmware->"installed") != ($Firmware->"latest")) do={
|
||||
:log warning ("LTE firmware versions still differ. Resetting again...");
|
||||
/interface/lte/at-chat $1 input="AT+RESET";
|
||||
}
|
||||
} on-error={
|
||||
:log error ("LTE firmware upgrade on '" . $1 . "' failed.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue