tgux
make own stateful telegram bot based on Redux
Last updated 3 months ago by esmaeilpour .
MIT · Repository · Bugs · Original npm · Tarball
$ cnpm install tgux 
SYNC missed versions from official npm registry.

tgux

Build Status npm version GitHub license

Make own stateful telegram bot based on Redux. Works on top of node-telegram-bot-api

Main features:

  • stateful bot
  • activities
  • history (back/forward/params)
  • storage support
  • form implementation

Install

npm install --save tgux

Demo

Usage

var Bot = require('tgux');

var bot = new Bot('TOKEN HERE', {polling: true})

bot.createActivity('start', (activity) => {
  activity.on('home', (msg) => {
    const opts = {
      reply_markup: {
        keyboard: activity.keyboards,
        resize_keyboard: true,
      }
    }
    bot.sendMessage(msg.chat.id, `hello ${msg.from.first_name}`, opts)
  })

  activity.on('Help', ['help', 'home'])
})

bot.createActivity('help', (activity) => {
  activity.on('home', (msg, history) => {
    const opts = {
      reply_markup: {
        keyboard: activity.keyboards,
        resize_keyboard: true,
      }
    }
    bot.sendMessage(msg.chat.id, 'help', opts)
  })

  activity.on('back', ['start', 'home'])
})

Custome Cache Handler

var co = require('co');
var redisClient = require('redis').createClient();
var wrapper = require('co-redis');
var redisCo = wrapper(redisClient);

const CacheHandler = class {
  set(key, value) {
    return redisCo.set(key, JSON.stringify(value))
  }

  *get(key) {
    let value = yield redisCo.get(key)
    if (!value) {
      return false
    }
    return JSON.parse(value)
  }
}

bot.setCacheHandler(CacheHandler)

License

The MIT License (MIT)

Copyright (c) 2017 Esmaeilpour

Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (5)
Dev Dependencies (3)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |