mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-03-30 22:55:48 +00:00
93 lines
3.4 KiB
Markdown
93 lines
3.4 KiB
Markdown
# SimpleX Chat Node.js library
|
|
|
|
This library replaced now deprecated [SimpleX Chat WebRTC TypeScript client](https://www.npmjs.com/package/@simplex-chat/webrtc-client).
|
|
|
|
## Use cases
|
|
|
|
- chat bots: you can implement any logic of connecting with and communicating with SimpleX Chat users. Using chat groups a chat bot can connect SimpleX Chat users with each other.
|
|
- control of the equipment: e.g. servers or home automation. SimpleX Chat provides secure and authorised connections, so this is more secure than using rest APIs.
|
|
- any scenarios of scripted message sending.
|
|
- chat and chat-based interfaces.
|
|
|
|
Please share your use cases and implementations.
|
|
|
|
## Quick start: a simple bot
|
|
|
|
```
|
|
npm i simplex-chat@6.5.0-beta.4.4
|
|
```
|
|
|
|
Simple bot that replies with squares of numbers you send to it:
|
|
|
|
```javascript
|
|
(async () => {
|
|
const {bot} = await import("simplex-chat")
|
|
// if you are running from this GitHub repo:
|
|
// const {bot} = await import("../dist/index.js")
|
|
const [chat, _user, _address] = await bot.run({
|
|
profile: {displayName: "Squaring bot example", fullName: ""},
|
|
dbOpts: {dbFilePrefix: "./squaring_bot", dbKey: ""},
|
|
options: {
|
|
addressSettings: {welcomeMessage: "Send a number, I will square it.",
|
|
},
|
|
onMessage: async (ci, content) => {
|
|
const n = +content.text
|
|
const reply = typeof n === "number" && !isNaN(n)
|
|
? `${n} * ${n} = ${n * n}`
|
|
: `this is not a number`
|
|
await chat.apiSendTextReply(ci, reply)
|
|
}
|
|
})
|
|
})()
|
|
```
|
|
|
|
If you installed this package as dependency, you can run this example with:
|
|
|
|
```sh
|
|
node ./node_modules/simplex-chat/examples/squaring-bot-readme.js
|
|
```
|
|
|
|
If you run it on Mac, the first time it will take 20-30 seconds for MacOS to verify the library.
|
|
|
|
If you cloned this repository, you can:
|
|
|
|
```
|
|
cd ./packages/simplex-chat-nodejs
|
|
npm install
|
|
npm run build
|
|
node ./examples/squaring-bot-readme.js
|
|
```
|
|
|
|
There is an example with more options in [./examples/squaring-bot.ts](./examples/squaring-bot.ts).
|
|
|
|
You can run it with: `npx ts-node ./examples/squaring-bot.ts`
|
|
|
|
## Documentation
|
|
|
|
The library docs are [here](./docs/README.md).
|
|
|
|
Library provides these modules:
|
|
- [bot](./docs/Namespace.bot.md): a simple declarative API to run a chat-bot with a single function call. It automates creating and updating of the bot profile, address and bot commands shown in the app UI.
|
|
- [api](./docs/Namespace.api.md): an API to send chat commands and receive chat events to/from chat core. You need to use it in bot event handlers, and for any other use cases.
|
|
- [core](./docs/Namespace.core.md): a low level API to the core library - the same that is used in desktop clients. You are unlikely to ever need to use this module directly.
|
|
- [util](./docs/Namespace.util.md): useful functions for chat events and types.
|
|
|
|
|
|
This library uses [@simplex-chat/types](https://www.npmjs.com/package/@simplex-chat/types) package with auto-generated [bot API types](../../bots/api/README.md).
|
|
|
|
## Supported chat functions
|
|
|
|
Library provides types and functions to:
|
|
|
|
- create and change user profile (although, in most cases you can do it manually, via SimpleX Chat terminal app).
|
|
- create and accept invitations or connect with the contacts.
|
|
- create and manage long-term user address, accepting connection requests automatically.
|
|
- send, receive, delete and update messages, and add message reactions.
|
|
- create, join and manage group.
|
|
- send and receive files.
|
|
- etc.
|
|
|
|
## License
|
|
|
|
[AGPL v3](./LICENSE)
|