a simple multi-burpose bot
Rin
Installation
Install all dependencies using npm
$ npm install
Build
$ npm run build
Development
cp .env.example .env
add your token to .env
use cli.js (process.arv
) as input
$ STATUS=debug npm start calc 1 + 1
for discord or telegram set TELEGRAM_TOKEN
or DISCORD_TOKEN
in .env
$ npm run dev
auto reload (use telegram or discord based on given token)
build and start main.js
from build
$ npm start
you can just add DISCORD_TOKEN
without TELEGRAM_TOKEN
to create a command create a file in src/commands
folder, create a class that have a method called handle
, ready
, and variable this.INFO
with some data, you can see in other command file
Info
this.INFO
use to define command (required), description (required), for (optional) and required (optional)
import Rin from '../core/rin'
export default class Command{
constuctor() {
this.INFO = {
command: 'something',
description: 'make your life easier',
for: 'discord' // or array ['discord', 'cli']
required: [
{
value: process.env.COMMAND_TOKEN,
toBe: Rin.notEmpty
}
]
}
}
}
Ready
ready
is called when this.INFO.required
passed (optional)
import Rin from '../core/rin'
export default class Command{
constuctor() {
this.INFO = {
command: 'sapi',
description: 'make me happy',
required: [
{
value: process.env.SAPI_TOKEN,
toBe: Rin.notEmpty
}
]
}
this.SAPI = new SOMETHING_API()
}
ready() {
this.SAPI.register(process.env.SAPI_TOKEN)
}
}
Handle
handle
is called when user type the command
export default class Command{
constuctor() {
this.INFO = {
command: 'kill',
description: 'kill your ex'
}
}
handle(message) {
const exname = message.join(' ')
return `${exname} has been killed`
}
}
for helper, create a method in Rin class src/core/rin.js
always run $ npm run lint
if you want to create a PR
Testing
$ npm test
create a unit test in test/command
folder for subcommand testing and test/__data__
for mock data, testing are test src folder, so we don't need to rebuild
Contributing
- Fork this repository
- Create a feature branch (never edit your master branch)
$ git checkout -b add-eat-command
- Create your features, see: development section
- Push your changes
$ git push origin add-eat-command
- Create a pull request
I am very happy if you want to contribute!
License
This project is licensed under the terms of the MIT license.
Image License: I don't know