mirror of
https://github.com/eworm-de/routeros-scripts.git
synced 2026-07-04 16:31:42 +00:00
Compare commits
35 commits
727a92738c
...
9911c8a0be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9911c8a0be | ||
|
|
d08f01c5d3 | ||
|
|
9bc9238598 | ||
|
|
16223b7a03 | ||
|
|
024405c43d | ||
|
|
ac28f5661a | ||
|
|
1c15667b7b | ||
|
|
e1e98bee69 | ||
|
|
5fe68bc79c | ||
|
|
9010282a71 | ||
|
|
304c936323 | ||
|
|
643389672f | ||
|
|
f850e71c27 | ||
|
|
3bd101472d | ||
|
|
e002259ecb | ||
|
|
dd39f8022b | ||
|
|
834f32e70b | ||
|
|
85c26f26e6 | ||
|
|
9dc23f80af | ||
|
|
0470f51e29 | ||
|
|
52a8d19def | ||
|
|
801f56377d | ||
|
|
0b860e46a6 | ||
|
|
ff3e565991 | ||
|
|
f30b560c1b | ||
|
|
88edc82b06 | ||
|
|
b2db005f6f | ||
|
|
2589115f50 | ||
|
|
d0588231f6 | ||
|
|
2c5b708f88 | ||
|
|
3cdcd24428 | ||
|
|
ef3edd3b3d | ||
|
|
7dd3c86fe0 | ||
|
|
f380d0ae66 | ||
|
|
332b91e75d |
35 changed files with 94 additions and 92 deletions
|
|
@ -226,7 +226,7 @@ everything is up-to-date it will not produce any output.
|
|||
If the update includes news or requires configuration changes a notification
|
||||
is sent - in addition to terminal output and log messages.
|
||||
|
||||

|
||||

|
||||
|
||||
Adding a script
|
||||
---------------
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
:global ScriptLock;
|
||||
:global SendNotification2;
|
||||
:global SymbolForNotification;
|
||||
:global UrlEncode;
|
||||
:global WaitFullyConnected;
|
||||
|
||||
:local CheckCertificatesDownloadImport do={
|
||||
|
|
@ -46,11 +45,10 @@
|
|||
:global FetchUserAgentStr;
|
||||
:global LogPrint;
|
||||
:global RmFile;
|
||||
:global UrlEncode;
|
||||
:global WaitForFile;
|
||||
|
||||
:foreach Type in={ "p12"; "pem" } do={
|
||||
:local CertFileName ([ $UrlEncode $FetchName ] . "." . $Type);
|
||||
:local CertFileName ([ :convert to=url $FetchName ] . "." . $Type);
|
||||
$LogPrint debug $ScriptName ("Trying type '" . $Type . "' for '" . $CertName . \
|
||||
"' (file '" . $CertFileName . "')...");
|
||||
|
||||
|
|
@ -202,7 +200,7 @@
|
|||
} else={
|
||||
$LogPrint debug $ScriptName ("Certificate '" . $CertVal->"name" . "' was not updated, but replaced.");
|
||||
|
||||
:local CertNew [ /certificate/find where name~("^" . [ $EscapeForRegEx [ $UrlEncode $FetchName ] ] . "\\.(p12|pem)_[0-9]+\$") \
|
||||
:local CertNew [ /certificate/find where name~("^" . [ $EscapeForRegEx [ :convert to=url $FetchName ] ] . "\\.(p12|pem)_[0-9]+\$") \
|
||||
(common-name=($CertVal->"common-name") or subject-alt-name~("(^|\\W)(DNS|IP):" . [ $EscapeForRegEx $LastName ] . "(\\W|\$)")) \
|
||||
fingerprint!=[ :tostr ($CertVal->"fingerprint") ] ];
|
||||
:local CertNewVal [ /certificate/get $CertNew ];
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ markdown -f toc,idanchor "${1}" | sed \
|
|||
-e '/<h[1234] /s|-2[1789cd]-||g' \
|
||||
-e '/<h[1234] /s|-3[f]-||g' \
|
||||
-e '/^<pre>/s|pre|pre class="code" onclick="CopyToClipboard(this)"|g' \
|
||||
-e '/<img src=".*" alt="[a-z]\+: .*" \/>/s|alt="\([a-z]\+\):|class="\1" alt="\1:|' \
|
||||
-e '/The above link may be broken on code hosting sites/s|blockquote|blockquote style="display: none;"|'
|
||||
|
||||
sed \
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
</span>
|
||||
|
||||
<p class="foot">RouterOS Scripts documentation generated on <i>__DATE__</i> for <i>__VERSION__</i><br />
|
||||
Copyright © 2013-2026 Christian Hesse <mail@eworm.de></p>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<script type="text/javascript" src="__GENERAL__/clipboard.js"></script>
|
||||
</head><body>
|
||||
|
||||
<table><tr>
|
||||
<table class="head"><tr>
|
||||
<td><img src="__GENERAL__/eworm-meadow.avif" alt="eworm on meadow" /></td>
|
||||
<td><img src="__GENERAL__/qr-code.png" alt="QR code: rsc.eworm.de" /></td>
|
||||
<td class="head"><span class="top">RouterOS Scripts</span><br />
|
||||
|
|
@ -14,3 +14,4 @@
|
|||
</tr></table>
|
||||
<hr />
|
||||
|
||||
<span class="markdown">
|
||||
|
|
|
|||
|
|
@ -40,9 +40,9 @@ something that differentiates? Color it!</p>
|
|||
<p>Then right-click, click "<i>Take Screenshot</i>" and finally select the
|
||||
logo and download it.</p>
|
||||
|
||||
<p><img src="logo-color.d/browser-01.avif" alt="Screenshot Browser 01"></p>
|
||||
<p><img src="logo-color.d/browser-02.avif" alt="Screenshot Browser 02"></p>
|
||||
<p><img src="logo-color.d/browser-03.avif" alt="Screenshot Browser 03"></p>
|
||||
<p><img src="logo-color.d/browser-01.avif" class="screenshot" alt="screenshot: browser 01"></p>
|
||||
<p><img src="logo-color.d/browser-02.avif" class="screenshot" alt="screenshot: browser 02"></p>
|
||||
<p><img src="logo-color.d/browser-03.avif" class="screenshot" alt="screenshot: browser 03"></p>
|
||||
|
||||
<p>(This example is with
|
||||
<a href="https://www.mozilla.org/firefox/">Mozilla Firefox ↗️</a>. The workflow
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
:global ScriptLock;
|
||||
:global SendNotification2;
|
||||
:global SymbolForNotification;
|
||||
:global UrlEncode;
|
||||
:global WaitForFile;
|
||||
:global WaitFullyConnected;
|
||||
|
||||
|
|
@ -78,7 +77,7 @@
|
|||
$LogPrint debug $ScriptName ("Already sent a mail for SSID " . $Ssid . ", skipping.");
|
||||
} else={
|
||||
:local Link ($DailyPskQrCodeUrl . \
|
||||
"?scale=8&level=1&ssid=" . [ $UrlEncode $Ssid ] . "&pass=" . [ $UrlEncode $NewPsk ]);
|
||||
"?scale=8&level=1&ssid=" . [ :convert to=url $Ssid ] . "&pass=" . [ :convert to=url $NewPsk ]);
|
||||
$SendNotification2 ({ origin=$ScriptName; \
|
||||
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
|
||||
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
:global ScriptLock;
|
||||
:global SendNotification2;
|
||||
:global SymbolForNotification;
|
||||
:global UrlEncode;
|
||||
:global WaitForFile;
|
||||
:global WaitFullyConnected;
|
||||
|
||||
|
|
@ -77,7 +76,7 @@
|
|||
$LogPrint debug $ScriptName ("Already sent a mail for SSID " . $Ssid . ", skipping.");
|
||||
} else={
|
||||
:local Link ($DailyPskQrCodeUrl . \
|
||||
"?scale=8&level=1&ssid=" . [ $UrlEncode $Ssid ] . "&pass=" . [ $UrlEncode $NewPsk ]);
|
||||
"?scale=8&level=1&ssid=" . [ :convert to=url $Ssid ] . "&pass=" . [ :convert to=url $NewPsk ]);
|
||||
$SendNotification2 ({ origin=$ScriptName; \
|
||||
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
|
||||
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
:global ScriptLock;
|
||||
:global SendNotification2;
|
||||
:global SymbolForNotification;
|
||||
:global UrlEncode;
|
||||
:global WaitForFile;
|
||||
:global WaitFullyConnected;
|
||||
|
||||
|
|
@ -93,7 +92,7 @@
|
|||
$LogPrint debug $ScriptName ("Already sent a mail for SSID " . $Ssid . ", skipping.");
|
||||
} else={
|
||||
:local Link ($DailyPskQrCodeUrl . \
|
||||
"?scale=8&level=1&ssid=" . [ $UrlEncode $Ssid ] . "&pass=" . [ $UrlEncode $NewPsk ]);
|
||||
"?scale=8&level=1&ssid=" . [ :convert to=url $Ssid ] . "&pass=" . [ :convert to=url $NewPsk ]);
|
||||
$SendNotification2 ({ origin=$ScriptName; \
|
||||
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
|
||||
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
:global ScriptLock;
|
||||
:global SendNotification2;
|
||||
:global SymbolForNotification;
|
||||
:global UrlEncode;
|
||||
:global WaitForFile;
|
||||
:global WaitFullyConnected;
|
||||
|
||||
|
|
@ -78,7 +77,7 @@
|
|||
$LogPrint debug $ScriptName ("Already sent a mail for SSID " . $Ssid . ", skipping.");
|
||||
} else={
|
||||
:local Link ($DailyPskQrCodeUrl . \
|
||||
"?scale=8&level=1&ssid=" . [ $UrlEncode $Ssid ] . "&pass=" . [ $UrlEncode $NewPsk ]);
|
||||
"?scale=8&level=1&ssid=" . [ :convert to=url $Ssid ] . "&pass=" . [ :convert to=url $NewPsk ]);
|
||||
$SendNotification2 ({ origin=$ScriptName; \
|
||||
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
|
||||
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ This script uploads
|
|||
|
||||
### Sample notification
|
||||
|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ configuration export (`/export terse show-sensitive`) to external server.
|
|||
|
||||
### Sample notification
|
||||
|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ certificates that are still about to expire.
|
|||
|
||||
### Sample notifications
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -40,27 +40,27 @@ sensors available in hardware:
|
|||
|
||||
#### CPU utilization
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
#### RAM utilization (low available RAM)
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
#### Voltage
|
||||
|
||||

|
||||

|
||||
|
||||
#### Temperature
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
#### PSU state
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ upgrades. Currently supported LTE hardware:
|
|||
|
||||
### Sample notification
|
||||
|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ and sends a notification to warn before expiration.
|
|||
|
||||
### Sample notifications
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ automatically is supported.
|
|||
|
||||
### Sample notifications
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
@ -88,7 +88,7 @@ Be notified when run from scheduler or run it manually:
|
|||
|
||||
If an update is found you can install it right away.
|
||||
|
||||

|
||||

|
||||
|
||||
Installing script [packages-update](packages-update.md) gives extra options.
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ and modify it to your needs.
|
|||
|
||||
### Sample notification
|
||||
|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ passphrase to a pseudo-random string daily.
|
|||
|
||||
### Sample notification
|
||||
|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ log messages and forwards them via notification.
|
|||
|
||||
### Sample notifications
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ Call the function `$InspectVar` with a variable as parameter:
|
|||
|
||||
$InspectVar $ModeButton;
|
||||
|
||||

|
||||

|
||||
|
||||
---
|
||||
[⬅️ Go back to main README](../../README.md)
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ It expects an IP address in CIDR notation as argument.
|
|||
|
||||
$IPCalc 192.168.88.1/24;
|
||||
|
||||

|
||||

|
||||
|
||||
### IPCalcReturn
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ the information in a named array.
|
|||
|
||||
:put ([ $IPCalcReturn 192.168.88.1/24 ]->"broadcast");
|
||||
|
||||

|
||||

|
||||
|
||||
---
|
||||
[⬅️ Go back to main README](../../README.md)
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ and the [First Login ↗️](https://gotify.net/docs/first-login) setup. Once
|
|||
you have a user and account you can start creating apps. Each app is an
|
||||
independent notification feed for a device or application.
|
||||
|
||||

|
||||

|
||||
|
||||
On creation apps are assigned a *Token* for authentification, you will need
|
||||
that in configuration.
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ and write first part of the configuration:
|
|||
|
||||
$SetupMatrixAuthenticate "@example:matrix.org" "v3ry-s3cr3t";
|
||||
|
||||

|
||||

|
||||
|
||||
The configuration is written to a new configuration snippet
|
||||
`global-config-overlay.d/mod/notification-matrix`.
|
||||
|
|
@ -94,7 +94,7 @@ the invite.
|
|||
|
||||
$SetupMatrixJoinRoom "!WUcxpSjKyxSGelouhA:matrix.org";
|
||||
|
||||

|
||||

|
||||
|
||||
The configuration is appended to the configuration snippet
|
||||
`global-config-overlay.d/mod/notification-matrix`.
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Configuration
|
|||
Open Telegram, then start a chat with [BotFather ↗️](https://t.me/BotFather) and
|
||||
create your own bot:
|
||||
|
||||

|
||||

|
||||
|
||||
Set that token from *BotFather* (use your own!) to `TelegramTokenId`, for
|
||||
now just temporarily:
|
||||
|
|
@ -49,7 +49,7 @@ then send your first message. Any text will do. On your device run
|
|||
|
||||
$GetTelegramChatId;
|
||||
|
||||

|
||||

|
||||
|
||||
Finally edit `global-config-overlay`, add `TelegramTokenId` with the token
|
||||
from *BotFather* and `TelegramChatId` with your retrieved chat id. Then
|
||||
|
|
@ -104,7 +104,7 @@ Tips & Tricks
|
|||
You can use a profile photo for your bot to make it recognizable. Open the
|
||||
chat with [BotFather ↗️](https://t.me/BotFather) and set it there.
|
||||
|
||||

|
||||

|
||||
|
||||
Have a look at my [Logo Color Changer](../../contrib/logo-color.html)
|
||||
to create a colored version of this scripts' logo.
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ The function `$ScriptRunOnce` expects an URL (or name if
|
|||
|
||||
$ScriptRunOnce https://rsc.eworm.de/main/doc/mod/scriptrunonce.d/hello-world.rsc;
|
||||
|
||||

|
||||

|
||||
|
||||
Giving multiple scripts is possible, separated by comma.
|
||||
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ optional parent host is not down to avoid false alerts.
|
|||
|
||||
### Sample notifications
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ A broadband interface with SMS support is required.
|
|||
|
||||
### Sample notification
|
||||
|
||||

|
||||

|
||||
|
||||
Requirements and installation
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -61,13 +61,13 @@ containing `! identity` (exclamation mark, optional space and system's
|
|||
identity). To query all dynamic ip addresses form a device named "*MikroTik*"
|
||||
send `! MikroTik`, followed by `/ip/address/print where dynamic;`.
|
||||
|
||||

|
||||

|
||||
|
||||
Devices can be grouped to chat with them simultaneously. The default group
|
||||
"*all*" can be activated by sending `! @all`, which will make all devices
|
||||
act on your commands.
|
||||
|
||||

|
||||

|
||||
|
||||
Send a single exclamation mark or non-existent identity to make all
|
||||
devices passive again.
|
||||
|
|
@ -78,7 +78,7 @@ Let's assume you received a message from a device before, and want to send
|
|||
a command to that device. No need to activate it, you can just reply to
|
||||
that message.
|
||||
|
||||

|
||||

|
||||
|
||||
Associated messages are cleared on device reboot.
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,12 @@ div.content {
|
|||
hr {
|
||||
clear: both;
|
||||
}
|
||||
img.notification {
|
||||
box-shadow: 3px 3px 7px rgba(100,100,100,0.7);
|
||||
}
|
||||
img.screenshot {
|
||||
box-shadow: 3px 3px 7px rgba(100,100,100,0.7);
|
||||
}
|
||||
img.logo {
|
||||
float: left;
|
||||
/* border-radius: 50%; */
|
||||
|
|
@ -66,6 +72,7 @@ pre {
|
|||
pre.code {
|
||||
background-color: #f8f8f8;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 3px 3px 7px rgba(100,100,100,0.7);
|
||||
overflow: auto;
|
||||
padding: 6px 10px;
|
||||
border-radius: 3px;
|
||||
|
|
|
|||
|
|
@ -7,3 +7,32 @@
|
|||
#
|
||||
# deprecated global functions
|
||||
# https://rsc.eworm.de/
|
||||
|
||||
:global UrlEncode;
|
||||
|
||||
# url encoding
|
||||
:set UrlEncode do={
|
||||
:local Input [ :tostr $1 ];
|
||||
|
||||
:if ([ :len $Input ] = 0) do={
|
||||
:return "";
|
||||
}
|
||||
|
||||
:local Return "";
|
||||
:local Chars ("\n\r !\"#\$%&'()*+,:;<=>?@[\\]^`{|}~");
|
||||
:local Subs { "%0A"; "%0D"; "%20"; "%21"; "%22"; "%23"; "%24"; "%25"; "%26"; "%27";
|
||||
"%28"; "%29"; "%2A"; "%2B"; "%2C"; "%3A"; "%3B"; "%3C"; "%3D"; "%3E"; "%3F";
|
||||
"%40"; "%5B"; "%5C"; "%5D"; "%5E"; "%60"; "%7B"; "%7C"; "%7D"; "%7E" };
|
||||
|
||||
:for I from=0 to=([ :len $Input ] - 1) do={
|
||||
:local Char [ :pick $Input $I ];
|
||||
:local Replace [ :find $Chars $Char ];
|
||||
|
||||
:if ([ :typeof $Replace ] = "num") do={
|
||||
:set Char ($Subs->$Replace);
|
||||
}
|
||||
:set Return ($Return . $Char);
|
||||
}
|
||||
|
||||
:return $Return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,6 @@
|
|||
:global SymbolByUnicodeName;
|
||||
:global SymbolForNotification;
|
||||
:global Unix2Dos;
|
||||
:global UrlEncode;
|
||||
:global ValidateSyntax;
|
||||
:global VersionToNum;
|
||||
:global WaitDefaultRouteReachable;
|
||||
|
|
@ -1795,33 +1794,6 @@
|
|||
:return [ :tocrlf [ :tostr $1 ] ];
|
||||
}
|
||||
|
||||
# url encoding
|
||||
:set UrlEncode do={
|
||||
:local Input [ :tostr $1 ];
|
||||
|
||||
:if ([ :len $Input ] = 0) do={
|
||||
:return "";
|
||||
}
|
||||
|
||||
:local Return "";
|
||||
:local Chars ("\n\r !\"#\$%&'()*+,:;<=>?@[\\]^`{|}~");
|
||||
:local Subs { "%0A"; "%0D"; "%20"; "%21"; "%22"; "%23"; "%24"; "%25"; "%26"; "%27";
|
||||
"%28"; "%29"; "%2A"; "%2B"; "%2C"; "%3A"; "%3B"; "%3C"; "%3D"; "%3E"; "%3F";
|
||||
"%40"; "%5B"; "%5C"; "%5D"; "%5E"; "%60"; "%7B"; "%7C"; "%7D"; "%7E" };
|
||||
|
||||
:for I from=0 to=([ :len $Input ] - 1) do={
|
||||
:local Char [ :pick $Input $I ];
|
||||
:local Replace [ :find $Chars $Char ];
|
||||
|
||||
:if ([ :typeof $Replace ] = "num") do={
|
||||
:set Char ($Subs->$Replace);
|
||||
}
|
||||
:set Return ($Return . $Char);
|
||||
}
|
||||
|
||||
:return $Return;
|
||||
}
|
||||
|
||||
# basic syntax validation
|
||||
:set ValidateSyntax do={
|
||||
:local Code [ :tostr $1 ];
|
||||
|
|
|
|||
|
|
@ -242,7 +242,6 @@
|
|||
|
||||
:global FetchUserAgentStr;
|
||||
:global LogPrint;
|
||||
:global UrlEncode;
|
||||
|
||||
:global MatrixAccessToken;
|
||||
:global MatrixHomeServer;
|
||||
|
|
@ -251,8 +250,8 @@
|
|||
:onerror Err {
|
||||
/tool/fetch check-certificate=yes-without-crl output=none \
|
||||
http-header-field=({ [ $FetchUserAgentStr $0 ] }) http-method=post http-data="" \
|
||||
("https://" . $MatrixHomeServer . "/_matrix/client/r0/rooms/" . [ $UrlEncode $MatrixRoom ] . \
|
||||
"/join?access_token=" . [ $UrlEncode $MatrixAccessToken ]) as-value;
|
||||
("https://" . $MatrixHomeServer . "/_matrix/client/r0/rooms/" . [ :convert to=url $MatrixRoom ] . \
|
||||
"/join?access_token=" . [ :convert to=url $MatrixAccessToken ]) as-value;
|
||||
$LogPrint debug $0 ("Joined the room.");
|
||||
} do={
|
||||
$LogPrint error $0 ("Failed joining the room: " . $Err);
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@
|
|||
:global IfThenElse;
|
||||
:global LogPrint;
|
||||
:global SymbolForNotification;
|
||||
:global UrlEncode;
|
||||
|
||||
:local Server [ $EitherOr ($NtfyServerOverride->($Notification->"origin")) $NtfyServer ];
|
||||
:local User [ $EitherOr ($NtfyServerUserOverride->($Notification->"origin")) $NtfyServerUser ];
|
||||
|
|
@ -92,7 +91,7 @@
|
|||
:return false;
|
||||
}
|
||||
|
||||
:local Url ("https://" . $Server . "/" . [ $UrlEncode $Topic ]);
|
||||
:local Url ("https://" . $Server . "/" . [ :convert to=url $Topic ]);
|
||||
:local Headers ({ [ $FetchUserAgentStr ($Notification->"origin") ]; \
|
||||
("Priority: " . [ $IfThenElse ($Notification->"silent") "low" "default" ]); \
|
||||
("Title: " . "[" . $IdentityExtra . $Identity . "] " . ($Notification->"subject")) });
|
||||
|
|
|
|||
|
|
@ -126,7 +126,6 @@
|
|||
:global LogPrint;
|
||||
:global ProtocolStrip;
|
||||
:global SymbolForNotification;
|
||||
:global UrlEncode;
|
||||
|
||||
:local EscapeMD do={
|
||||
:local Text [ :tostr $1 ];
|
||||
|
|
@ -203,7 +202,7 @@
|
|||
}
|
||||
:local Data ([ /tool/fetch check-certificate=yes-without-crl output=user http-method=post \
|
||||
("https://api.telegram.org/bot" . $TokenId . "/sendMessage") \
|
||||
http-data=($HTTPData . "&text=" . [ $UrlEncode $Text ]) as-value ]->"data");
|
||||
http-data=($HTTPData . "&text=" . [ :convert to=url $Text ]) as-value ]->"data");
|
||||
:set ($TelegramMessageIDs->[ :tostr ([ :deserialize from=json value=$Data ]->"result"->"message_id") ]) 1;
|
||||
} do={
|
||||
$LogPrint info $0 ("Failed sending Telegram notification: " . $Err . " - Queuing...");
|
||||
|
|
@ -215,7 +214,7 @@
|
|||
[ $EscapeMD ("This message was queued since _" . [ /system/clock/get date ] . \
|
||||
" " . [ /system/clock/get time ] . "_ and may be obsolete.") "plain" "_" ]);
|
||||
:set ($TelegramQueue->[ :len $TelegramQueue ]) { tokenid=$TokenId;
|
||||
http-data=($HTTPData . "&text=" . [ $UrlEncode $Text ]) };
|
||||
http-data=($HTTPData . "&text=" . [ :convert to=url $Text ]) };
|
||||
:if ([ :len [ /system/scheduler/find where name="_FlushTelegramQueue" ] ] = 0) do={
|
||||
/system/scheduler/add name="_FlushTelegramQueue" interval=1m start-time=startup \
|
||||
on-event=(":global FlushTelegramQueue; \$FlushTelegramQueue;");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue