mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-03-30 20:45:49 +00:00
* nodejs: addon
* rename
* changes
* change lib name
* package
* lib path
* simplex-chat-nodejs: fix library paths
* simplex-chat-nodejs: change addon name
* simplex-chat-nodejs: install libs, adjust package and installation
* simplex-chat-nodejs: add npmignore
* gitignore: add additional nodejs path
* simplex-chat-nodejs: fix shim name
* gitignore: ignore nodejs package lock
* simplex-chat-nodejs: rename shim to underscore
* simplex-chat-nodejs: fix library loading on Mac
* simplex-chat-nodejs: expose low-level functions, move tests
* simplex-chat-nodejs: expose shim fucntions
* simplex-chat-nodejs: fixed libs version
* simplex-chat-nodejs: switch to official repository
* simpelx-chat-nodejs: adjust release tag
* async addon, tests
* refactor, fixes
* high level chat api
* simplify cpp add-on - move logic to JS, fix API
* api for events, api test
* update @simplex-chat/types
* Revert "update @simplex-chat/types"
This reverts commit da3f89866f.
* change @simplex-chat/types version
* receiver for any events, wait with timeout
* low-level bot example
* typedoc
* network connection events
* declarative bot api
* readme, docs
* update docs
* update readme
* add liveMessage support
* allow passing welcome message as string
* @simplex-chat/webrtc-client 6.5.0-beta.3
* bot test
* concurrent connection in tests
* nodejs/download-libs: cleanup on version mismatch
* nodejs/download-libs: bump libs version
* do not handle signals in Haskell
* update bot examples
* flatten docs and use local links to code
* update readme
* 6.5.0-beta.4
* include more files in npm package, 6.5.0-beta.4.2
* .gitignore
---------
Co-authored-by: Avently <7953703+avently@users.noreply.github.com>
Co-authored-by: shum <github.shum@liber.li>
43 lines
1.9 KiB
TypeScript
43 lines
1.9 KiB
TypeScript
import {T} from "@simplex-chat/types"
|
|
import {bot, util} from "../dist"
|
|
|
|
(async () => {
|
|
const welcomeMessage = "Hello! I am a simple squaring bot.\n\nIf you send me a number, I will calculate its square."
|
|
const [chat, _user, _address] = await bot.run({
|
|
profile: {displayName: "Squaring bot example", fullName: ""},
|
|
dbOpts: {dbFilePrefix: "./squaring_bot", dbKey: ""},
|
|
options: {
|
|
addressSettings: {autoAccept: true, welcomeMessage, businessAddress: false},
|
|
commands: [ // commands to show in client UI
|
|
{type: "command", keyword: "help", label: "Send welcome message"},
|
|
{type: "command", keyword: "info", label: "More information (not implemented)"}
|
|
],
|
|
logContacts: true,
|
|
logNetwork: false
|
|
},
|
|
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)
|
|
},
|
|
onCommands: { // command handlers can be different from commands to be shown in client UI
|
|
"help": async (ci: T.AChatItem, _cmd: util.BotCommand) => {
|
|
await chat.apiSendTextMessage(ci.chatInfo, welcomeMessage)
|
|
},
|
|
// fallback handler that will be called for all other commands
|
|
"": async (ci: T.AChatItem, _cmd: util.BotCommand) => {
|
|
await chat.apiSendTextReply(ci, "This command is not supported")
|
|
}
|
|
},
|
|
// If you use `onMessage` and subscribe to "newChatItems" event, exclude content messages from processing
|
|
// If you use `onCommands` and subscribe to "newChatItems" event, exclude commands from processing
|
|
events: {
|
|
"chatItemReaction": ({added, reaction}) => {
|
|
console.log(`${util.senderName(reaction.chatInfo, reaction.chatReaction.chatDir)} ${added ? "added" : "removed"} reaction ${util.reactionText(reaction)}`)
|
|
}
|
|
},
|
|
})
|
|
})()
|