tgux

0.1.6 • Public • Published

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

Package Sidebar

Install

npm i tgux

Weekly Downloads

1

Version

0.1.6

License

MIT

Last publish

Collaborators

  • esmaeilpour