mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-10-03 03:59:05 +00:00
* bots: SimpleX Calculator demo bot * refactor * use local server in test * simplify * icon * simplify * expression * replies * improve * log * update name in bot address * @simplex-chat/type: 0.12.0 * simplex-chat nodejs: 7.1.0-beta.4.2 * update dependencies * option to add domain to bot address --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# SimpleX Calculator
|
||
|
||
A calculator bot built with the [SimpleX Chat Node.js library](../../packages/simplex-chat-nodejs/).
|
||
|
||
Each user who connects via the bot's business address receives a calculator message with keys as commands. The bot replaces this message after each input.
|
||
|
||
- `×` and `÷` are applied before `+` and `-`, so `2 + 3 × 4 =` equals 14.
|
||
- `%` is computed as in Apple's calculator: `100 + 15 % =` equals 115.
|
||
- Tap `C` to clear the number, and `C` again to clear the calculation.
|
||
- Numbers are shown without exponent, up to 15 digits; larger results are shown as `Error`.
|
||
- You can also send numbers and keys like `+`, `=`, `add` or `c`. Expressions like `(2 + 3) × 4` are entered as one number, and the bot replies to them with the result.
|
||
- The bot deletes keys and numbers, tapped or sent, and logs each computed operation, such as `15 + 10 = 25`.
|
||
- After 10 minutes without input, the bot turns the calculator off and discards the calculation; tap any key to turn it on.
|
||
- The bot sends keys like `/+` to apps with chat protocol version 21 or later, and keys like `/add` to older apps.
|
||
|
||
## Run
|
||
|
||
```bash
|
||
npm install
|
||
npm run build
|
||
npm start
|
||
```
|
||
|
||
The bot prints its address and keeps its data in `./data`.
|
||
|
||
To add a SimpleX name to the address, register the name with the address short link, and run `npm start -- --domain yourname.simplex`. The name is kept when the bot starts without `--domain`.
|
||
|
||
To use the library from this repository, build it and run `npm install --no-save ../../packages/simplex-chat-nodejs` instead of `npm install`.
|
||
|
||
## Test
|
||
|
||
```bash
|
||
npm test
|
||
```
|
||
|
||
A local SMP server is started for the end-to-end test. On Linux, `smp-server` is downloaded from [simplexmq releases](https://github.com/simplex-chat/simplexmq/releases); to use another build, or on other systems, set `SMP_SERVER` to the path of `smp-server`.
|