2024-12-31 19:05:12 +03:00

129 lines
4.2 KiB
HTML

<script type="text/javascript">
RED.nodes.registerType('receiver', {
category: 'telegram-account',
color: '#229ED9',
icon: 'tg.png',
align:"right",
defaults: {
name: { value: '' },
config: { type: 'config', required: false },
ignore: { value:""}
},
inputs: 1,
outputs: 1,
label: function () {
return this.name || 'Receiver';
},
});
</script>
<script type="text/html" data-template-name="receiver">
<div class="form-row">
<label for="node-input-name">
<i class="fa fa-tag"></i> Name
</label>
<input
type="text"
id="node-input-name"
placeholder="Name"
style="width: 60%"
/>
</div>
<div class="form-row">
<label for="node-input-config">
<i class="fa fa-tag"></i> Config
</label>
<input
type="text"
id="node-input-config"
placeholder="Config"
style="width: 60%"
/>
</div>
<div class="form-row">
<label for="node-input-ignore">
<i class="fa fa-tag"></i> Config
</label>
<textarea
type="text"
id="node-input-ignore"
placeholder="Config"
style="width: 60%"
></textarea>
</div>
</script>
<script type="text/html" data-help-name="receiver">
<p>The <b>receiver</b> node listens for incoming Telegram messages and forwards them as output messages in Node-RED. It supports filtering messages based on sender IDs to ignore specific users.</p>
<h3>Inputs</h3>
<p>This node does not take any direct inputs. It listens to all incoming messages from the configured Telegram client.</p>
<h3>Outputs</h3>
<dl class="message-properties">
<dt>payload.update
<span class="property-type">object</span>
</dt>
<dd>The raw Telegram update object containing details about the incoming message, sender, chat, and metadata.</dd>
</dl>
<h3>Configuration</h3>
<dl class="message-properties">
<dt>Telegram Configuration
<span class="property-type">node</span>
</dt>
<dd>A configured Telegram client node to receive messages. Ensure the client is authenticated and has necessary permissions.</dd>
<dt>Ignore List
<span class="property-type">string</span>
</dt>
<dd>A newline-separated list of user IDs to ignore. Messages from these users will not trigger the output.</dd>
</dl>
<h3>Details</h3>
<p>The <b>receiver</b> node uses the Telegram client to listen for all new messages in real-time. It emits a message to the next connected Node-RED node whenever a new Telegram message is received, provided the sender's user ID is not in the ignore list.</p>
<h3>Example</h3>
<pre>
{
"payload": {
"update": {
"message": {
"message": "Hello, bot!",
"sender": {
"id": 123456789,
"username": "exampleuser"
},
"chat": {
"id": 987654321,
"type": "private"
}
}
}
}
}
</pre>
<p>In this example, the node outputs the raw Telegram update object when a user sends the message "Hello, bot!" to the Telegram bot.</p>
<h3>Error Handling</h3>
<p>If the Telegram client encounters an authentication issue or configuration error, the node logs an error message and stops listening for messages.</p>
<h3>Advanced Usage</h3>
<p>By configuring the <b>Ignore List</b>, you can filter out messages from specific users. For example:</p>
<pre>
123456789
987654321
</pre>
<p>In this case, messages from user IDs <code>123456789</code> and <code>987654321</code> will be ignored.</p>
<h3>Notes</h3>
<ul>
<li>Ensure the Telegram bot has sufficient permissions to receive messages in the configured chat or channel.</li>
<li>The <b>Ignore List</b> only filters messages based on the sender's user ID.</li>
<li>For advanced filtering based on message content, consider chaining this node with additional processing nodes in Node-RED.</li>
</ul>
</script>