1
This commit is contained in:
commit
505e642430
16
appUpdaterScript.rsc
Normal file
16
appUpdaterScript.rsc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
:do {
|
||||||
|
:local debug 0;
|
||||||
|
:foreach script in=[/system/script/find where name~"update[a-zA-Z]+FromDnsCache" ] do={
|
||||||
|
:do {
|
||||||
|
/system/script/run ($script->"name");
|
||||||
|
} on-error={
|
||||||
|
if ($debug > 0) do={
|
||||||
|
:log info "error adding ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} on-error={
|
||||||
|
:log info "RUNTIME Error";
|
||||||
|
}
|
||||||
|
}
|
5
freetv.json
Normal file
5
freetv.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"staticDomains": [ "images.frp1.ott.kaltura.com", "api.frp1.ott.kaltura.com", "cfvod.kaltura.com", "tdbc.redgalaxy.com" ],
|
||||||
|
"regexPatterns": [ "(\\.)?il\\.cdn-redge\\.media\$", "(\\.)?freetv\\.tv\$" ],
|
||||||
|
"appName": "FreeTV"
|
||||||
|
}
|
45
gen-app-script-from-json.rb
Normal file
45
gen-app-script-from-json.rb
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require "json"
|
||||||
|
|
||||||
|
|
||||||
|
appUpdateTemplateFile = "updateAppFromDnsCache-template.rsc"
|
||||||
|
|
||||||
|
templateFile = File.open(appUpdateTemplateFile)
|
||||||
|
|
||||||
|
appUpdateTemplateString = templateFile.readlines
|
||||||
|
|
||||||
|
templateFile.close
|
||||||
|
|
||||||
|
appJsonFile = ARGV[0]
|
||||||
|
|
||||||
|
file = File.open(appJsonFile)
|
||||||
|
data = JSON.load(file)
|
||||||
|
file.close
|
||||||
|
|
||||||
|
#puts JSON.pretty_generate(data)
|
||||||
|
domainsString = "\"#{data["staticDomains"].join("\"; \"")}\""
|
||||||
|
domainsRegexString = "\"#{data["regexPatterns"].join("\"; \"")}\""
|
||||||
|
domainsRegexString = domainsRegexString.gsub("$",'\$').gsub("\.", "\\.")
|
||||||
|
#puts domainsRegexString
|
||||||
|
|
||||||
|
appUpdateTemplateString.each do |line|
|
||||||
|
case line
|
||||||
|
when /##INSERT_LINES.*/
|
||||||
|
if data["staticDomains"].nil? or data["staticDomains"].empty?
|
||||||
|
puts(" :local staticDomains;")
|
||||||
|
|
||||||
|
else
|
||||||
|
puts(" :local staticDomains { \"#{data["staticDomains"].join("\"; \"")}\" };")
|
||||||
|
end
|
||||||
|
if data["regexPatterns"].nil? or data["regexPatterns"].empty?
|
||||||
|
puts(" :local regexString;")
|
||||||
|
else
|
||||||
|
puts(" :local regexString { #{domainsRegexString} };")
|
||||||
|
end
|
||||||
|
when /:local addressList "###ADDRESS_LIST###"/
|
||||||
|
puts(" :local addressList \"#{data["appName"]}\"")
|
||||||
|
else
|
||||||
|
puts(line)
|
||||||
|
end
|
||||||
|
end
|
5
google-firebase.json
Normal file
5
google-firebase.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"staticDomains": [ "firebaselogging-pa.googleapis.com", "firebaseremoteconfig.googleapis.com", "" ],
|
||||||
|
"regexPatterns": [ ],
|
||||||
|
"appName": "googleFireBase"
|
||||||
|
}
|
35
updateAppFromDnsCache-template.rsc
Normal file
35
updateAppFromDnsCache-template.rsc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
:do {
|
||||||
|
:local debug 0;
|
||||||
|
:local addressList "###ADDRESS_LIST###";
|
||||||
|
##INSERT_LINES
|
||||||
|
|
||||||
|
:foreach dom in=$staticDomains do={
|
||||||
|
:do {
|
||||||
|
/ip/firewall/address-list/add address=$dom list=$addressList;
|
||||||
|
} on-error={
|
||||||
|
if ($debug > 0) do={
|
||||||
|
:log info "error adding ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:foreach rec in=[/ip/dns/cache/print as-value ] do={
|
||||||
|
:foreach regexTestString in=$regexString do={
|
||||||
|
if ( ($rec->"type")~"(CNAME|A)\$" ) do={
|
||||||
|
if ( ($rec->"name")~"$regexTestString" ) do={
|
||||||
|
:do {
|
||||||
|
/ip/firewall/address-list/add address=($rec->"name") list=$addressList;
|
||||||
|
} on-error={
|
||||||
|
if ($debug > 0) do={
|
||||||
|
:log info "error adding ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} on-error={
|
||||||
|
:log info "RUNTIME Error";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user