Awesome
Webbybot
**THIS PROJECT IS NOT MAINTAINED, please consider Hubot or my client-side attempt Saihubot **
Webbybot is the next generation framework to build message/chat bots, written in ES6 and plain javascript. Fully compatible with Hubot's middleware and plugins.
The Differences:
- Port hubot from CoffeeScript to ES6 (plain JS) with babel.
- Auto test coverage report with Codecov.
- Auto linting with eslint.
- Support .env file to setup system parameters
- robot.router upgraded to Express 4.x
The Same:
- Still support hubot plugins written in coffeescript.
- Can reuse hubot adapters*
- Auto continue integration with Travis CI.
- How it works(for now)
- Support write plugin with plain Javascript
How to try Webbybot
You can start from webby-template , a template for make a working webby bot
$ git clone https://github.com/gasolin/webby-template.git demo
$ cd demo
$ npm install
$ ./bin/webby
You can find and install extra skills from npm
Enable a skill in external-scripts.json
.
Add the environment variables in .env file.
How to replace Hubot to Webbybot
Refer to Getting Started With Hubot, Install hubot generator first
npm install -g yo generator-hubot
Then generate your robot with
yo hubot
-
Enter the folder, edit
bin/hubot
and replacehubot
towebby
. -
install webbybot package
npm install --save webbybot
- modify adapter's dependency
Let's take telegram adapter for example. Edit node_modules/hubot-telegram/src/telegram.coffee
and replace first line require 'hubot'
to require 'webbybot'
.
start your bot as normal
./bin/hubot
Tested with hubot-telegram
and hubot-messenger
.
Development
$ npm install -g mocha
Build
run command
$ npm run build
Add plugins
$ npm install hubot-calculator hubot-diagnostics
Add external-scripts.json file which contain:
[
"hubot-diagnostics",
"hubot-calculator"
]
Run
run command
$ node ./bin/webby
webby > ping
webby > PONG
webby > echo hello
webby > hello
webby > webby calc 1 + 1
webby > 2
Test
$ npm test
Lint
$ npm run lint
Write your own plugin
You can clone webby-plugin template to get start.
webby-template already bundled with webby-plugin. You can check how it work for reference.