0.1.6 • Published 8 years ago

tgux v0.1.6

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

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

npm.io

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