tgux
v0.1.6
Published
make own stateful telegram bot based on Redux
Downloads
8
Maintainers
Readme
tgux
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