mirror of
https://github.com/eworm-de/routeros-scripts.git
synced 2026-01-01 06:39:32 +00:00
Compare commits
39 commits
a95077c14b
...
88155d901a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
88155d901a | ||
|
|
fd9c892a50 | ||
|
|
a7876e9833 | ||
|
|
8a45e4836a | ||
|
|
617f67f2b7 | ||
|
|
4b5a3f7f90 | ||
|
|
3be8ea0fb6 | ||
|
|
780a177ae6 | ||
|
|
1272eb2aa8 | ||
|
|
c08ed68e86 | ||
|
|
d2ea8b8d45 | ||
|
|
128526536e | ||
|
|
089f95d5c9 | ||
|
|
4ac9d6c09f | ||
|
|
90ce3db2f9 | ||
|
|
b9a72ef9c0 | ||
|
|
62deb6aae3 | ||
|
|
a57abbc685 | ||
|
|
ec2401b5c3 | ||
|
|
ee06798d8b | ||
|
|
96f61be2e2 | ||
|
|
268b8b6abe | ||
|
|
4102b49637 | ||
|
|
dd019a71c8 | ||
|
|
ebd84d1540 | ||
|
|
d845b1878b | ||
|
|
8a278569e7 | ||
|
|
d2f055a554 | ||
|
|
9a88b6c878 | ||
|
|
4e1db10a6e | ||
|
|
4f55808ce0 | ||
|
|
962b082672 | ||
|
|
6887d816bf | ||
|
|
787feedbb5 | ||
|
|
12b1572208 | ||
|
|
0af5d516a3 | ||
|
|
ec8a38d67b | ||
|
|
5726573933 | ||
|
|
3776a028f8 |
24 changed files with 191 additions and 120 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -7,6 +7,7 @@
|
|||
*.rej
|
||||
|
||||
# html files (as generated from markdown)
|
||||
style.css
|
||||
*.html
|
||||
|
||||
# checksums file as used by $ScriptInstallUpdate
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ Import a certificate by CommonName
|
|||
Running the function `$CertificateAvailable` with that name as parameter
|
||||
makes sure the certificate is available in the device's store:
|
||||
|
||||
$CertificateAvailable "ISRG Root X2";
|
||||
$CertificateAvailable "ISRG Root X2" "fetch";
|
||||
|
||||
If the certificate is actually available already nothing happens, and there
|
||||
is no output. Otherwise the certificate is downloaded and imported.
|
||||
|
|
|
|||
|
|
@ -22,8 +22,11 @@ Run the complete base installation:
|
|||
:local CertFileName "ISRG-Root-X2.pem";
|
||||
:local CertFingerprint "69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470";
|
||||
|
||||
:if (!(([ /certificate/settings/get ]->"builtin-trust-anchors") = "trusted" && \
|
||||
[[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 0)) do={
|
||||
:local CertSettings [ /certificate/settings/get ];
|
||||
:if (!((($CertSettings->"builtin-trust-anchors") = "trusted" || \
|
||||
($CertSettings->"builtin-trust-store") ~ "fetch" || \
|
||||
($CertSettings->"builtin-trust-store") = "all") && \
|
||||
[[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 0)) do={
|
||||
:put "Importing certificate...";
|
||||
/tool/fetch ($BaseUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value;
|
||||
:delay 1s;
|
||||
|
|
|
|||
30
Makefile
30
Makefile
|
|
@ -2,18 +2,31 @@
|
|||
# template scripts -> final scripts
|
||||
# markdown files -> html files
|
||||
|
||||
CAPSMAN = $(wildcard *.capsman.rsc)
|
||||
LOCAL = $(wildcard *.local.rsc)
|
||||
WIFI = $(wildcard *.wifi.rsc)
|
||||
ALL_RSC := $(wildcard *.rsc */*.rsc)
|
||||
GEN_RSC := $(wildcard *.capsman.rsc *.local.rsc *.wifi.rsc)
|
||||
|
||||
MARKDOWN = $(wildcard *.md doc/*.md doc/mod/*.md)
|
||||
HTML = $(MARKDOWN:.md=.html)
|
||||
MARKDOWN := $(wildcard *.md doc/*.md doc/mod/*.md)
|
||||
HTML := $(MARKDOWN:.md=.html) style.css
|
||||
|
||||
all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json
|
||||
.PHONY: all checksums docs rsc clean
|
||||
|
||||
%.html: %.md contrib/html.sh contrib/html.sh.d/head.html
|
||||
all: checksums docs rsc
|
||||
|
||||
checksums: checksums.json
|
||||
|
||||
checksums.json: contrib/checksums.sh $(ALL_RSC)
|
||||
contrib/checksums.sh > $@
|
||||
|
||||
docs: $(HTML)
|
||||
|
||||
style.css: contrib/general/style.css
|
||||
cp $< $@
|
||||
|
||||
%.html: %.md style.css contrib/html.sh contrib/html.sh.d/head.html
|
||||
contrib/html.sh $< > $@
|
||||
|
||||
rsc: $(GEN_RSC)
|
||||
|
||||
%.capsman.rsc: %.template.rsc Makefile
|
||||
sed -e '/\/interface\/wifi\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.capsman|' \
|
||||
-e '/^# NOT \/caps-man\/ #$$/,/^# NOT \/caps-man\/ #$$/d' \
|
||||
|
|
@ -32,8 +45,5 @@ all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json
|
|||
-e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \
|
||||
< $< > $@
|
||||
|
||||
checksums.json: contrib/checksums.sh *.rsc */*.rsc
|
||||
contrib/checksums.sh
|
||||
|
||||
clean:
|
||||
rm -f $(HTML) checksums.json
|
||||
|
|
|
|||
|
|
@ -77,8 +77,11 @@ download the certificates.
|
|||
> 💡️ **Hint**: RouterOS 7.19 comes with a builtin certificate store. You
|
||||
> can skip the steps regarding certificate download and import and jump
|
||||
> to [installation of scripts](#installation-of-scripts) if you set the
|
||||
> trust for these builtin trust anchors:
|
||||
> `/certificate/settings/set builtin-trust-anchors=trusted;`
|
||||
> trust for these builtin trust anchors:
|
||||
> `/certificate/settings/set builtin-trust-anchors=trusted;`
|
||||
> With RouterOS 7.21 the functionality was changed. Set this at minimum,
|
||||
> but make sure not to drop other targets:
|
||||
> `/certificate/settings/set builtin-trust-store=fetch;`
|
||||
|
||||
If you intend to download the scripts from a
|
||||
different location (for example from github.com) install the corresponding
|
||||
|
|
@ -173,7 +176,7 @@ This last step is required when ever you make changes to your configuration.
|
|||
|
||||
> ℹ️ **Info**: It is recommended to edit the configuration using the command
|
||||
> line interface. If using Winbox on Windows OS, the line endings may be
|
||||
> missing. To fix this run:
|
||||
> missing. To fix this run:
|
||||
> `/system/script/set source=[ :tocrlf [ get global-config-overlay source ] ] global-config-overlay;`
|
||||
|
||||
Updating scripts
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
:global CertWarnTime;
|
||||
:global Identity;
|
||||
|
||||
:global CertificateAvailable
|
||||
:global CertificateAvailable;
|
||||
:global EscapeForRegEx;
|
||||
:global IfThenElse;
|
||||
:global LogPrint;
|
||||
|
|
@ -189,7 +189,7 @@
|
|||
fingerprint!=[ :tostr ($CertVal->"fingerprint") ] expires-after>$CertRenewTime ];
|
||||
:local CertNewVal [ /certificate/get $CertNew ];
|
||||
|
||||
:if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") ] = false) do={
|
||||
:if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") "fetch" ] = false) do={
|
||||
$LogPrint warning $ScriptName ("The certificate chain is not available!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,4 @@ set -e
|
|||
|
||||
md5sum $(find -name '*.rsc' | sort) | \
|
||||
sed -e "s| \./||" -e 's|.rsc$||' | \
|
||||
jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add' > 'checksums.json'
|
||||
jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add'
|
||||
|
|
|
|||
76
contrib/general/style.css
Normal file
76
contrib/general/style.css
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
/* stylesheet for RouterOS Scripts */
|
||||
body {
|
||||
background-color: transparent;
|
||||
font-family: fira-sans, sans-serif;
|
||||
font-size: 10pt;
|
||||
line-height: 1.6;
|
||||
}
|
||||
@media only screen and (orientation: landscape) {
|
||||
body {
|
||||
margin-left: 10vw;
|
||||
margin-right: 10vw;
|
||||
}
|
||||
}
|
||||
h2 {
|
||||
border-bottom: 1px solid #ccc;
|
||||
color: #000;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
blockquote {
|
||||
border-left: 4px solid #ccc;
|
||||
padding: 0 10px;
|
||||
color: #777;
|
||||
}
|
||||
code {
|
||||
margin: 0 2px;
|
||||
padding: 2px 5px;
|
||||
border: 1px solid #ccc;
|
||||
background-color: #f8f8f8;
|
||||
border-radius: 3px;
|
||||
}
|
||||
div.notification {
|
||||
position: relative;
|
||||
float: right;
|
||||
width: 600px;
|
||||
border: 3px outset #6c5d53;
|
||||
/* border-radius: 5px; */
|
||||
padding: 10px;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
div.content {
|
||||
padding-left: 60px;
|
||||
}
|
||||
img.logo {
|
||||
float: left;
|
||||
border-radius: 50%;
|
||||
}
|
||||
p.heading {
|
||||
margin: 0px;
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
p.hint {
|
||||
display: none;
|
||||
}
|
||||
pre {
|
||||
font-family: fira-mono, monospace;
|
||||
white-space: pre-wrap;
|
||||
background-color: #f8f8f8;
|
||||
border: 1px solid #ccc;
|
||||
overflow: auto;
|
||||
padding: 6px 10px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
pre code {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
span.link {
|
||||
color: #863600;
|
||||
}
|
||||
|
|
@ -2,8 +2,14 @@
|
|||
|
||||
set -e
|
||||
|
||||
sed "s|__TITLE__|$(head -n1 "${1}")|" < "${0}.d/head.html"
|
||||
RELTO="$(dirname "${1}")"
|
||||
sed \
|
||||
-e "s|__TITLE__|$(head -n1 "${1}")|" \
|
||||
-e "s|__STYLE__|$(realpath --relative-to="${RELTO}" style.css)|" \
|
||||
-e "s|__LOGO__|$(realpath --relative-to="${RELTO}" logo.png)|" \
|
||||
< "${0}.d/head.html"
|
||||
markdown -f toc,idanchor "${1}" | sed \
|
||||
-e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \
|
||||
-e '/<h[1234] /s| id="\(.*\)">| id="\L\1">|'
|
||||
-e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \
|
||||
-e '/<h[1234] /s| id="\(.*\)">| id="\L\1">|' \
|
||||
-e '/<h[1234] /s|-2c-||'
|
||||
printf '</body></html>'
|
||||
|
|
|
|||
|
|
@ -1,15 +1,6 @@
|
|||
<!DOCTYPE html><html lang="en">
|
||||
<head><title>RouterOS Scripts :: __TITLE__</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<style>
|
||||
body { font-family: sans-serif; }
|
||||
h2 { border-bottom: 1px solid #ccc; color: #000; }
|
||||
a { text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
blockquote { border-left: 4px solid #ccc; padding: 0 10px; color: #777; }
|
||||
code { margin: 0 2px; padding: 2px 5px; border: 1px solid #ccc; background-color: #f8f8f8; border-radius: 3px; }
|
||||
pre { background-color: #f8f8f8; border: 1px solid #ccc; overflow: auto; padding: 6px 10px; border-radius: 3px; }
|
||||
pre code { margin: 0; padding: 0; border: 0; }
|
||||
</style>
|
||||
<link rel="icon" href="/logo.png" type="image/png">
|
||||
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<title>RouterOS Scripts :: __TITLE__</title>
|
||||
<link rel="stylesheet" type="text/css" href="__STYLE__">
|
||||
<link rel="icon" type="image/png" href="__LOGO__">
|
||||
</head><body>
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
body {
|
||||
font-family: fira-sans, sans-serif;
|
||||
font-size: 10pt;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>RouterOS-Scripts Logo Color Changer</title>
|
||||
<link rel="stylesheet" type="text/css" href="logo-color.d/style.css">
|
||||
<!DOCTYPE html><html lang="en">
|
||||
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<title>RouterOS Scripts :: Logo Color Changer</title>
|
||||
<link rel="stylesheet" type="text/css" href="general/style.css">
|
||||
<link rel="icon" type="image/png" href="../logo.png">
|
||||
<script src="logo-color.d/script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
</head><body>
|
||||
|
||||
<h1>RouterOS-Scripts Logo Color Changer</h1>
|
||||
<h1>Logo Color Changer</h1>
|
||||
|
||||
<p><a href="../README.html">⬅️ Go back to main README</a></p>
|
||||
|
||||
<p>You want the logo for your own notifications? But you joined the
|
||||
<a href="https://t.me/routeros_scripts">Telegram Group</a> and want
|
||||
|
|
@ -36,5 +36,8 @@ for other browsers may differ.)</p>
|
|||
<a href="../../about/doc/mod/notification-telegram.md#set-a-profile-photo">Set
|
||||
a profile photo</a> for your Telegram bot.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<hr />
|
||||
|
||||
<p><a href="../README.html">⬅️ Go back to main README</a><br/>
|
||||
<a href="#top">⬆️ Go back to top</a></p>
|
||||
</body></html>
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
body {
|
||||
font-family: fira-sans, sans-serif;
|
||||
font-size: 10pt;
|
||||
background-color: transparent;
|
||||
}
|
||||
div.notification {
|
||||
position: relative;
|
||||
float: right;
|
||||
width: 600px;
|
||||
border: 3px outset #6c5d53;
|
||||
/* border-radius: 5px; */
|
||||
padding: 10px;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
div.content {
|
||||
padding-left: 60px;
|
||||
}
|
||||
img.logo {
|
||||
float: left;
|
||||
border-radius: 50%;
|
||||
}
|
||||
p.heading {
|
||||
margin: 0px;
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
p.hint {
|
||||
display: none;
|
||||
}
|
||||
pre {
|
||||
font-family: fira-mono, monospace;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
span.link {
|
||||
color: #863600;
|
||||
}
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>RouterOS-Scripts Notification Generator</title>
|
||||
<link rel="stylesheet" type="text/css" href="notification.d/style.css">
|
||||
<script src="notification.d/script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!DOCTYPE html><html lang="en">
|
||||
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<title>RouterOS Scripts :: Notification Generator</title>
|
||||
<link rel="stylesheet" type="text/css" href="general/style.css">
|
||||
<link rel="icon" type="image/png" href="../logo.png">
|
||||
<script src="notification.d/script.js"></script>
|
||||
</head><body>
|
||||
|
||||
<h1>RouterOS-Scripts Notification Generator</h1>
|
||||
<h1>Notification Generator</h1>
|
||||
|
||||
<p><a href="../README.html">⬅️ Go back to main README</a></p>
|
||||
|
||||
<div class="notification">
|
||||
<img src="../logo.svg" alt="logo" class="logo" width=48 height=48>
|
||||
|
|
@ -16,8 +16,8 @@
|
|||
<p id="heading" class="heading">[<span id="hostname">MikroTik</span>] <span id="subject">ℹ️ Subject</span></p>
|
||||
<pre id="message">Message</pre>
|
||||
<p id="link" class="hint">🔗 <span id="link-text" class="link">https://eworm.de/</span></p>
|
||||
<p id="queued" class="hint">⏰ This message was queued since <span id="queued-since">oct/18/2022 18:30:48</span> and may be obsolete.</p>
|
||||
<p id="cut" class="hint">✂️ The message was too long and has been truncated, cut off <span id="cut-percent">13</span>%!</p>
|
||||
<p id="queued" class="hint">⏰ This message was queued since <i><span id="queued-since">2025-10-29 16:06:18</span></i> and may be obsolete.</p>
|
||||
<p id="cut" class="hint">✂️ The message was too long and has been truncated, cut off <i><span id="cut-percent">13</span>%</i>!</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -25,11 +25,14 @@
|
|||
<p>Subject: <input type="text" size=50 value="ℹ️ Subject" onchange="update(this, 'subject')"></p>
|
||||
<p>Message: <textarea id="w3review" name="w3review" rows="4" cols="50" onchange="update(this, 'message')">Message</textarea></p>
|
||||
<p><input type="checkbox" onclick="visible(this, 'link')"> Show link: <input type="text" value="https://eworm.de/" onchange="update(this, 'link-text')"></p>
|
||||
<p><input type="checkbox" onclick="visible(this, 'queued')"> Queued since <input type="text" value="oct/18/2022 18:30:48" onchange="update(this, 'queued-since')"></p>
|
||||
<p><input type="checkbox" onclick="visible(this, 'queued')"> Queued since <input type="text" value="2025-10-29 16:06:18" onchange="update(this, 'queued-since')"></p>
|
||||
<p><input type="checkbox" onclick="visible(this, 'cut')"> Cut-off with <input type="number" min=1 max=99 value=13 onchange="update(this, 'cut-percent')"> percent</p>
|
||||
|
||||
<p>Then right-click, click "<i>Take Screenshot</i>" and finally select the
|
||||
notification and download it.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<hr />
|
||||
|
||||
<p><a href="../README.html">⬅️ Go back to main README</a><br/>
|
||||
<a href="#top">⬆️ Go back to top</a></p>
|
||||
</body></html>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ your server in device's certificate store.
|
|||
The example below is for `matrix.org`, which uses a trust chain from *Google
|
||||
Trust Services*. Run this to import the required certificate:
|
||||
|
||||
$CertificateAvailable "GTS Root R4";
|
||||
$CertificateAvailable "GTS Root R4" "fetch";
|
||||
|
||||
Replace the CA certificate name with what ever is needed for your server.
|
||||
You may want to find the
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
# an ip address list for use with fw-addr-lists script
|
||||
# https://git.eworm.de/cgit/routeros-scripts/about/doc/fw-addr-lists.md
|
||||
git.eworm.de
|
||||
# https://rsc.eworm.de/doc/fw-addr-lists.md
|
||||
rsc.eworm.de
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# an ip address list for use with fw-addr-lists script
|
||||
# https://git.eworm.de/cgit/routeros-scripts/about/doc/fw-addr-lists.md
|
||||
# https://rsc.eworm.de/doc/fw-addr-lists.md
|
||||
|
||||
# example.net
|
||||
93.184.216.34
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
|
||||
:if ([ :len ($List->"cert") ] > 0) do={
|
||||
:set CheckCertificate true;
|
||||
:if ([ $CertificateAvailable ($List->"cert") ] = false) do={
|
||||
:if ([ $CertificateAvailable ($List->"cert") "fetch" ] = false) do={
|
||||
$LogPrint warning $ScriptName ("Downloading required certificate (" . $FwListName . \
|
||||
" / " . $List->"url" . ") failed, trying anyway.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,11 +106,15 @@
|
|||
# check and download required certificate
|
||||
:set CertificateAvailable do={
|
||||
:local CommonName [ :tostr $1 ];
|
||||
:local UseFor [ :tostr $2 ];
|
||||
|
||||
:global CertificateDownload;
|
||||
:global EitherOr;
|
||||
:global LogPrint;
|
||||
:global ParseKeyValueStore;
|
||||
|
||||
:set UseFor [ $EitherOr $UseFor "undefined" ];
|
||||
|
||||
:if ([ /system/resource/get free-hdd-space ] < 8388608 && \
|
||||
[ /certificate/settings/get crl-download ] = true && \
|
||||
[ /certificate/settings/get crl-store ] = "system") do={
|
||||
|
|
@ -123,7 +127,10 @@
|
|||
:return false;
|
||||
}
|
||||
|
||||
:if (([ /certificate/settings/get ]->"builtin-trust-anchors") = "trusted" && \
|
||||
:local CertSettings [ /certificate/settings/get ];
|
||||
:if ((($CertSettings->"builtin-trust-anchors") = "trusted" || \
|
||||
($CertSettings->"builtin-trust-store") ~ $UseFor || \
|
||||
($CertSettings->"builtin-trust-store") = "all") && \
|
||||
[[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CommonName . "\" ] ]") ]] > 0) do={
|
||||
:return true;
|
||||
}
|
||||
|
|
@ -161,7 +168,6 @@
|
|||
:global ScriptUpdatesBaseUrl;
|
||||
:global ScriptUpdatesUrlSuffix;
|
||||
|
||||
:global CertificateAvailable;
|
||||
:global CertificateNameByCN;
|
||||
:global CleanName;
|
||||
:global FetchUserAgentStr;
|
||||
|
|
@ -398,7 +404,7 @@
|
|||
:return true;
|
||||
}
|
||||
|
||||
:if ([ $CertificateAvailable "ISRG Root X1" ] = false) do={
|
||||
:if ([ $CertificateAvailable "ISRG Root X1" "fetch" ] = false) do={
|
||||
$LogPrint error $0 ("Downloading required certificate failed.");
|
||||
:return false;
|
||||
}
|
||||
|
|
@ -634,7 +640,7 @@
|
|||
}
|
||||
|
||||
:do {
|
||||
:if ([ $CertificateAvailable "GTS Root R4" ] = false) do={
|
||||
:if ([ $CertificateAvailable "GTS Root R4" "fetch" ] = false) do={
|
||||
$LogPrint warning $0 ("Downloading required certificate failed.");
|
||||
:error false;
|
||||
}
|
||||
|
|
@ -1242,7 +1248,7 @@
|
|||
:global SymbolForNotification;
|
||||
:global ValidateSyntax;
|
||||
|
||||
:if ([ $CertificateAvailable "ISRG Root X2" ] = false) do={
|
||||
:if ([ $CertificateAvailable "ISRG Root X2" "fetch" ] = false) do={
|
||||
$LogPrint warning $0 ("Downloading certificate failed, trying without.");
|
||||
}
|
||||
|
||||
|
|
@ -1293,7 +1299,7 @@
|
|||
}
|
||||
|
||||
:if ([ :len ($ScriptInfo->"certificate") ] > 0) do={
|
||||
:if ([ $CertificateAvailable ($ScriptInfo->"certificate") ] = false) do={
|
||||
:if ([ $CertificateAvailable ($ScriptInfo->"certificate") "fetch" ] = false) do={
|
||||
$LogPrint warning $0 ("Downloading certificate failed, trying without.");
|
||||
}
|
||||
}
|
||||
|
|
@ -1310,9 +1316,19 @@
|
|||
}
|
||||
} do={
|
||||
$LogPrint warning $0 ("Failed fetching script '" . $ScriptVal->"name" . "': " . $Err);
|
||||
:if ($Err != "Fetch failed with status 404") do={
|
||||
:error false;
|
||||
}
|
||||
|
||||
:if ($ScriptVal->"source" = "#!rsc by RouterOS\n") do={
|
||||
$LogPrint warning $0 ("Removing dummy. Typo on installation?");
|
||||
/system/script/remove $Script;
|
||||
:error false;
|
||||
}
|
||||
:if ([ :len ($ScriptInfo->"base-url") ] = 0 && [ :len ($ScriptInfo->"url-suffix") ] = 0 && \
|
||||
[ :len $CheckSum ] = 0) do={
|
||||
$LogPrintOnce warning $0 \
|
||||
("Added the script manually? Skip updates with 'ignore=true' in comment.");
|
||||
}
|
||||
:error false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@
|
|||
|
||||
:onerror Err {
|
||||
:if ($Server = "ntfy.sh") do={
|
||||
:if ([ $CertificateAvailable "ISRG Root X1" ] = false) do={
|
||||
:if ([ $CertificateAvailable "ISRG Root X1" "fetch" ] = false) do={
|
||||
$LogPrint warning $0 ("Downloading required certificate failed.");
|
||||
:error false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
:return false;
|
||||
}
|
||||
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={
|
||||
$LogPrint warning $0 ("Downloading required certificate failed.");
|
||||
:return false;
|
||||
}
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
:global CertificateAvailable;
|
||||
:global LogPrint;
|
||||
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={
|
||||
$LogPrint warning $0 ("Downloading required certificate failed.");
|
||||
:return false;
|
||||
}
|
||||
|
|
@ -197,7 +197,7 @@
|
|||
"&reply_to_message_id=" . ($Notification->"replyto") . "&message_thread_id=" . $ThreadId . \
|
||||
"&disable_web_page_preview=true&parse_mode=MarkdownV2");
|
||||
:onerror Err {
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={
|
||||
$LogPrint warning $0 ("Downloading required certificate failed.");
|
||||
:error false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@
|
|||
|
||||
:foreach DohServer in=$DohServers do={
|
||||
:if ([ :len ($DohServer->"doh-cert") ] > 0) do={
|
||||
:if ([ $CertificateAvailable ($DohServer->"doh-cert") ] = false) do={
|
||||
:if ([ $CertificateAvailable ($DohServer->"doh-cert") "dns" ] = false) do={
|
||||
$LogPrint warning $ScriptName ("Downloading certificate failed, trying without.");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@
|
|||
:set TelegramRandomDelay 0;
|
||||
}
|
||||
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={
|
||||
:if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={
|
||||
$LogPrint warning $ScriptName ("Downloading required certificate failed.");
|
||||
:set ExitOK true;
|
||||
:error false;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
:error false;
|
||||
}
|
||||
|
||||
:if ([ $CertificateAvailable "Starfield Root Certificate Authority - G2" ] = false) do={
|
||||
:if ([ $CertificateAvailable "Starfield Root Certificate Authority - G2" "fetch" ] = false) do={
|
||||
$LogPrint error $ScriptName ("Downloading required certificate failed.");
|
||||
:set ExitOK true;
|
||||
:error false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue