Leonel
Director de inteligencia artificial - colombia.dev
Install / Use
/learn @colombia-dev/LeonelREADME
Leonel
Overview
Leonel is a bot we use to make our life easier for our colombia-dev community
Running locally for development
The easy way
Setup your environment
Make a bot integration, or have a bot token handy
- https://my.slack.com/services/new/bot
Create a slack.env file:
$ cp slack.env.example slack.env
The only token that needs to be valid is SLACK_TOKEN, the rest can be placeholder unless you want to test the invitation or onboarding flows.
After setting the right SLACK_TOKEN in your slack.env file, use docker-compose to bring up leonel:
$ docker-compose up
Go to your Slack, and send a DM to leonel saying coqueto. He'll respond if he's up. You can run docker in a detached state by using docker-compose up -d instead.
Make changes
The docker-compose setup is configured to reboot the bot when any local file changes, using nodemon to make development easier.
Seed users
Leonel uses MongoDB to store specific information about users, you can create the user accounts by running:
$ docker-compose run bot yarn db:seed
This will execute the script db:seed in a container to create all the users from Slack's API.
Running Tests
You can run ava tests in a container, by running:
$ docker-compose run bot yarn test
If you want for tests to watch your files, you can run:
$ docker-compose run bot yarn test -- -w
If you want to modify the DEBUG env var, you can run:
$ docker-compose run -e DEBUG="" bot yarn test -- -w
Shutting Down
When you're done, you can use docker-compose to clean up your environment:
$ docker-compose down
The not so easy way
Setup your environment
All environment variables in example env file should be set before running Leonel.
Other requirements:
- Yarn
- NodeJS 7.7.x
- MongoDB
Install dependencies:
$ yarn
Start leonel:
$ yarn start
Things are looking good if the console prints something like:
** API CALL: https://slack.com/api/rtm.start
** BOT ID: leonel ...attempting to connect to RTM!
** API CALL: https://slack.com/api/chat.postMessage
bot:main Estamos coneptados al Eslá
We have added yarn start:watch script which uses Nodemon for convenience during development. This restarts the bot after any change done to source files.
Seed users
Leonel uses MongoDB to store specific information about users, you can create the user accounts by running:
$ yarn db:seed
This will execute the script db:seed to create all the users from Slack's API.
Running Tests
note: make sure the proper environment vars in example env file are set before running tests
We use ava for unit and integration testing, you can run tests by typing:
$ yarn test
You can watch files and run tests when any changes are detected by using:
$ yarn test -- -w
JavaScript Style
In order to minimize code style differences, we have adopted the StandardJS style. Please make sure your changes are compatible with the guide.
note: you can check compatibility by running tests
$ yarn test
note: you may also be able to automatically fix any style issues with the standard tool
$ node_modules/.bin/standard --fix
Please see the documentation at StandardJS for more information.
Acknowledgements
This code uses the botkit npm module by the fine folks at Howdy.ai.
License
See the LICENSE file (MIT).
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
