Skip to content

urbanriskmap/cognicity-bot-core

Repository files navigation

Build Status Coverage Status License: GPL v3

CogniCity Bot Core Package

Core language functionality for CogniCity chatbots

About

NodeJS package to create language for CogniCity chatbots operating on social media:

  • can fetch report card from CogniCity server and prepare a unique link for user to submit flood report
  • composes thank you message containing unique report ID
  • provides default message to send to users

Installation

npm i cognicity-bot-core

Use

import Bot from 'cognicity-bot-core';

// Messages object provides the bot with a vocabulary
const messages = {
    en: {
      texts: {
        default: "RiskMap bot helps you report flooding in realtime. Send /flood to report. In life-threatening situations call 911.",
        card: "Please report using this one-time link ",
        thanks: "Thank you for your report. You can access it using this link "
      }
    }
}

// Configuration object
const config = {
    CARDS_API: 'https://data.cognicity.com/cards/', // CogniCity data server cards endpoint
    CARDS_API_KEY: '123',                           // CogniCity data server API key
    CARDS_URL: 'https://cards.cognicity.com/',      // Client URL for cards resources
    DEFAULT_LANGUAGE: 'en',                         // Default language for messages
    MAP_URL: 'https://map.cognicity.com/',          // Client URL for map
    MESSAGES: messages                              // Vocabulary object created above
}

// Initialize
const bot = new Bot(config);

// Get a default message
const properties = {
    language: 'id'      // language of the user
}
const message = bot.default(properties);

// Get a report card message (bot will make a request to CogniCity server)
const properties = {
    language: 'id',     // language of the user
    network: 'twitter'  // user's network 
}
const message = bot.card(properties);

console.log(message.text); // language to send to user
console.log(message.link); // link to send to user

// Get a thank you message for a specified report
const properties = {
    language: 'id',             // language of the user
    instanceRegionCode: 'jbd',  // CogniCity instance region of the report
    reportId: '1'               // CogniCity report id
}
const message = bot.thanks(properties);

console.log(message.text); // language to send to user
console.log(message.link); // link to send to user

Tests

npm run test

Build

npm run build

Code Style

  • Google ES6 specification

Release

The release procedure is as follows:

  • Update the CHANGELOG.md file with the newly released version, date, and a high-level overview of changes. Commit the change.
  • Create a tag in git from the current head of master. The tag version should be the same as the version specified in the package.json file - this is the release version.
  • Update the version in the package.json file and commit the change.
  • Further development is now on the updated version number until the release process begins again.

About

Core language functionality for CogniCity chatbots

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •