telegram-notifications

1.0.6 • Public • Published

Telegram Notifications

A Node.js application to send notifications to Telegram groups or forum topics using the Telegram Bot API. This project provides an HTTP RPC server to send messages to configured Telegram groups, supporting topic creation and message threading in supergroups.

Features

  • Register and use a Telegram supergroup as an admin group for notifications.
  • Create and manage forum topics within the admin group.
  • Send messages to specific topics in the Telegram group.
  • HTTP RPC server to receive notification requests and forward them to Telegram.
  • Uses Level RocksDB for persistent storage of configuration and topics.
  • Built with LiveScript and JavaScript.

Installation

  1. Install

    npm install telegram-notifications -g
  2. Install dependencies:

    telegram-notifications --rpcport <PORT> --dbpath <path-to-db>

Usage

Run the notification server with the required options:

node index.js --rpcport <port> --dbpath <path-to-db>
  • --rpcport: The port number on which the RPC server will listen.
  • --dbpath: The path to the directory where the database files will be stored.

Sending Notifications

Send a POST request to the /notify-in-group endpoint with JSON body:

{
  "token": "<telegram-bot-token>",
  "topic": "<topic-name>",
  "message": "<message-text>"
}

Example using curl:

curl -X POST http://localhost:<rpcport>/notify-in-group \
  -H "Content-Type: application/json" \
  -d '{"token":"<your-bot-token>","topic":"Updates","message":"Hello, this is a test notification."}'

Configuration

  • The bot token is provided in each notification request.
  • The admin group must be a Telegram supergroup with forum enabled.
  • The bot will register the admin group on first message and create topics as needed.

Project Structure

  • index.js / index.ls: Entry point to start the RPC server.
  • rpc.ls: Express server handling notification requests.
  • bot-topics.ls: Logic for managing Telegram topics and sending messages.
  • get-bot.ls: Creates or retrieves a Telegram bot instance.
  • get-db.ls: Manages Level RocksDB database connections.
  • as-callback.ls: Utility to convert promises to callback style.
  • cb.ls: Simple callback logger.
  • test.ls: Test script to verify the notification flow.

Dependencies

License

ISC

Readme

Keywords

none

Package Sidebar

Install

npm i telegram-notifications

Weekly Downloads

2

Version

1.0.6

License

ISC

Unpacked Size

10.2 kB

Total Files

18

Last publish

Collaborators

  • askucher