Giter Site home page Giter Site logo

palm's Introduction

palm

๐ŸŒด A Tree, that can talk.

Install

$ yarn add palm

Usage

import Palm from 'palm'

const palm = new Palm({
  // talking option used for communications (telegram or cli for now)
  talk: '<option>',
  // if telegram, pass credentials (no need for cli)
  telegram: {
    host: 'https://api.telegram.org/bot', // the default one
    token: '<token>', // your telegram API Bot token
    parent: '<telegram_id>' // your telegram ID to send messages to
  }
})

// Init listener
palm.listen()

// Send messages
// If using within telegram, palm will send message to `parent` id
// specified in settings
palm.send({ text: 'Hi' })

Development

Setup
  1. Clone - git clone https://github.com/frenchbread/palm.git && cd palm
  2. NPM install - yarn install
  3. Test - yarn run test (Modify test.js file)
Build
$ yarn run build

API

new Palm(options)

Returns palm instance

options

talk (String) - talking option to be used by palm to receive/send messages. Currently supported: cli, telegram or rocketchat

NOTE! The second option is a config provided for specific "talking option". Use one of the following:

cli - none

telegram - (Object)

{
	url: '<api_url>',
	token: '<your_bot_token>',
	parent: '<your_telegram_id'
}

rocketchat - (Object)

{
	url: '<full_api_url>', => e.g. https://<host>/api/v1
	user: '<your_username>',
	password: '<your_password>'
}

Methods

palm.listen()

Fires a listener that listens and responds to messages

palm.addCoco(coco)

Add custom responder (called coco)

coco - (Object)

const customCoco = {
	// Enabled flag - Boolean
	enabled: true,
	// Coco name - String
	name: 'Hi',
	// Coco description - String
	details: 'My custom coco',
	// Keywords that indicate that this coco will be used - Array
	keywords: ['hi', 'bye'],
	// Function to be executed when responding to message - Function
	exec (text) {
		let text2Send = ''

		if (text === 'hi') {
			text2Send = 'Hi, there.'
		} else if (text === 'bye') {
			text2Send = 'Ok, bye.'
		}

		return Promise.resolve(text2Send)
	}
}

palm.addCoco(customCoco)
palm.send(options)

Programmatic way to send a message.

options

to - (Number)

Telegram userId to send message to.

text - (String)

Message text to be sent.

Author

License

MIT

palm's People

Contributors

frenchbread avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.