kaede
v0.3.1
Published
A light-weighted LINE bot platform
Downloads
5
Readme
Kaede
A light-weighted LINE bot platform :maple_leaf:
Requirements
Node.js 8 or higher
Install
Via npm:
npm i -g kaede
How to use
Kaede is under heavy development and the hehaviour can be changed at any time.
$ kaede [args] <script>
kaede bot.js
# with custom config path (kaede.config.json by default)
kaede --config custom.config.json bot.js
# show help
kaede --help
The bot script should default-export an async generator yielding message objects.
export default async function* (event) {
yield { type: 'text', text: 'hello' };
yield { type: 'text', text: 'world' };
}
You can also refer to the bot context as the 2nd argument.
export default async function* (event, ctx) {
const profile = await ctx.client.getProfile(event.source.userId);
yield { type: 'text', text: `hello, ${profile.displayName}!` };
}
The context object has a type like below.
{
client: Client, // Messaging API Client
baseUrl: string, // base URL of webhook server
staticRoot: string, // absolute path to static root directory
}
About the interface of Client
, please refer to the documentation of
line-bot-sdk-nodejs.
The kaede
command with a bot script path will automatically set up a webhook
server and a ngrok tunnel. Please set the generated URL as
a webhook URL in LINE Developers Console.
The URL will already have been copied to the system clipboard.
$ kaede bot.js
Listening at 91178db2.ngrok.io
91178db2.ngrok.io is copied to the clipboard
Press Enter/Return to reload the bot script
Press Ctrl+C/D to quit
For detailed usages, please refer to the examples.
Static file serving
Kaede serves static files in static/
by default. You can also set this with
--static
in CLI. Please refer to the context for webhook base URL and static
root.
`${ctx.baseUrl}/images/some_image.jpg`
// => will serve a file at `${ctx.staticRoot}/images/some_image.jpg`
Features
- [x] Basic webhook functionality
- [x] ngrok integration
- [x] Hot reload for bot script
- [ ] Connect adaptor for production usage