Client JavaScript#
Pré-requis
Si vous nâavez pas installĂ© de daemon, merci de suivre la section đ Quickstart.
Avant de commencer, vérifiez bien que vous avez une instance du daemon Olvid qui tourne, avec une identité créée dessus, et une clé client valide pour vous connecter en utilisant cette identité.
Si vous souhaitez vérifier que votre daemon est fonctionnel et/ou récupérer une clé client perdue, utilisez la commande : docker compose run --rm cli key get
Nous avons développé un module Node.js en typescript pour facilement créer des programmes qui intéragissent avec un daemon Olvid.
Voici la procĂ©dure de mise en place dâun programme de dĂ©monstration qui se connecte Ă votre instance de daemon et implĂ©mente les bases dâun chat bot.
Installation#
CrĂ©ons tout dâabord notre rĂ©pertoire de travail.
mkdir -p olvid-bot
cd olvid-bot
On peut maintenant mettre en place le projet.
npm init -y
npm install @olvid/bot-node
mkdir -p src
touch .env src/main.ts
npm pkg set scripts.main="npx tsx src/main.ts"
Configuration#
Pour se connecter Ă un daemon, votre programme a besoin de connaitre lâadresse du daemon et la clĂ© client Ă utiliser. Pour cela, on utilise des variables dâenvironnement ou un fichier .env.
Remplacez la clĂ© client par celle que vous avez créée lors de la mise en place de votre daemon, et lâadresse du daemon si nĂ©cessaire.
echo OLVID_DAEMON_TARGET=localhost:50051 > .env
echo OLVID_CLIENT_KEY=ReplaceWithYourClientKey >> .env
Premier programme#
Vous pouvez maintenant copier/coller le code suivant dans le fichier src/main.ts.
Le programme va afficher lâidentitĂ© avec laquelle vous ĂȘtes connectĂ© au daemon puis attendre que des messages arrivent. Pour le moment il ne rĂ©pond quâĂ la commande !ping mais vous pouvez modifier le code pour adapter son comportement.
import {OlvidClient, datatypes} from "@olvid/bot-node";
import {command, onMessageReceived, onMessageSent} from "@olvid/bot-node";
class ExampleBot extends OlvidClient {
@command("^!ping")
async help(message: datatypes.Message) {
await message.reply(this, "pong")
}
@onMessageReceived()
async messageReceived(message: datatypes.Message) {
console.log("<", message.body);
}
@onMessageSent()
async messageSent(message: datatypes.Message) {
console.log(">", message.body);
}
}
async function main() {
let bot = new ExampleBot();
console.log("Started bot as:", (await bot.identityGet()).displayName)
await bot.runForever();
}
main().then()
Lancez votre programme Ă lâaide la commande suivante. (CTRL+C pour lâinterrompre).
npm run main
Lorsque tout fonctionne vous pouvez utiliser ce programme comme base pour votre projet en le modifiant.