https://github.com/rappytv/rappynotify
API to send messages to my phone
https://github.com/rappytv/rappynotify
api notify telegram
Last synced: over 1 year ago
JSON representation
API to send messages to my phone
- Host: GitHub
- URL: https://github.com/rappytv/rappynotify
- Owner: RappyTV
- Created: 2023-08-17T18:27:58.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-01-15T13:12:07.000Z (over 2 years ago)
- Last Synced: 2025-01-27T07:14:36.871Z (over 1 year ago)
- Topics: api, notify, telegram
- Language: JavaScript
- Homepage: https://msg.rappytv.com
- Size: 37.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# RappyNotify
This is a simple Telegram message gateway.
## Setup
### Installation
1. Clone this repository
2. Run `npm install`
3. Create a `config.json` based on the `config.json.example` file
4. Configure your custom instance of `RappyNotify`
5. Run `node index.js`
### Configuration
The `config.json` file contains the following options:
| Option | Description |
| --- | --- |
| `token` | The Telegram bot token |
| `port` | The port to run the server on |
| `logIPs` | Whether or not to log IPs in the console |
| `timeFormat` | The format of the time in the console |
| `adminToken` * | Authorization token required to perform actions like `POST` `/refresh` |
| `users` | An array of users |
| `users[x].id` | The user's internal ID (not the telegram id!) |
| `users[x].aliases` | An array of aliases for the user |
| `users[x].private` | Decides if the user info can be shown on `GET` `/:user` |
| `users[x].conversation` | The ID of the conversation to send messages to |
| `users[x].auth` | An object containing authentication options for the user |
| `users[x].auth.active` | Whether or not an auth key is needed to send messages to the user |
| `users[x].auth.key` | The key the user needs to enter to send messages |
| `groups` | An array of groups |
| `groups[x].id` | The group's internal ID |
| `groups[x].aliases` | An array of aliases for the group |
| `groups[x].private` | Decides if the group info can be shown on `GET` `/:group` |
| `groups[x].users` | The users who are in the group |
| `groups[x].users[x].id` | The user id (Note: The user must exist in the `users` array) |
| `groups[x].users[x].private` | If the user's username is shown in `GET` `/:group` |
| `groups[x].auth` | An object containing authentication options for the group |
| `groups[x].auth.active` | Whether or not an auth key is needed to send messages to the group |
| `groups[x].auth.key` | The auth key that is needed to send messages |
| `ratelimiter` | An object containing ratelimiter options |
| `ratelimiter.enabled` | Whether or not to enable the ratelimiter |
| `ratelimiter.max` | The maximum amount of requests a user can send in the time window |
| `ratelimiter.seconds` | The length of the ratelimiter time window in seconds |
| `ratelimiter.bypassTokens` | An array of strings you can put in the `x-ratelimit-bypass` header to bypass the ratelimit |
\* Is optional so you can leave it empty
## Usage
### Sending messages
To send a message to a user or a group, simply send a `POST` request to `/:id` where `id` is a user or a group id or one of their aliases. The request body should contain a JSON object with the `message` property. If the user has authentication enabled, you also need to include an `Authorization` header with the value of their key.
### Refreshing the config (Maybe for adding users and stuff)
Just send a `POST` request to `/refresh` and the config get's refreshed.