telegram-chat: answer question mark with short notice

This commit is contained in:
Christian Hesse 2023-10-13 21:54:50 +02:00
parent 15873e2fdb
commit 1b62545d8c
3 changed files with 13 additions and 2 deletions

View file

@ -78,6 +78,11 @@ Associated messages are cleared on device reboot.
> ⚠️ **Warning**: If another device is activated both will act, the one from
> reply and the active one!
### Ask for devices
Send a message with a single question mark (`?`) to query for devices
currenty online. The answer can be used for command via reply then.
Known limitations
-----------------

View file

@ -19,7 +19,7 @@
103="Dropped hard-coded name and timeout from 'hotspot-to-wpa-cleanup', instead a comment is required for dhcp server now.";
104="All relevant scripts were ported to new wifiwave2 and are available for AX devices now!";
105="Extended 'check-routeros-update' to support automatic update from specific neighbor(s).";
106="Modified 'telegram-chat' to make it act on message replies, without activation.";
106="Modified 'telegram-chat' to make it act on message replies, without activation. Also made it answer a single question mark with a short notice.";
};
# Migration steps to be applied on script updates

View file

@ -77,7 +77,13 @@ $WaitFullyConnected;
:if ($Trusted = true) do={
:local Done false;
:if ([ :pick ($Message->"text") 0 1 ] = "!") do={
:if ($Message->"text" = "?") do={
$SendTelegram2 ({ origin=$0; chatid=($Chat->"id"); silent=false; replyto=($Message->"message_id"); \
subject=([ $SymbolForNotification "speech-balloon" ] . "Telegram Chat"); \
message=("Online, awaiting your commands!") });
:set Done true;
}
:if ($Done = false && [ :pick ($Message->"text") 0 1 ] = "!") do={
:if ($Message->"text" ~ ("^! *(" . [ $EscapeForRegEx $Identity ] . "|@" . $TelegramChatGroups . ")\$")) do={
:set TelegramChatActive true;
} else={