Corncierge is a Node.js module that combines several powerful components.
Interacting with Discord is discord.js. This module provides an abstraction layer for handling commands (both conventional message and interactions) and moderation type events on top of the already existing coverage discord.js provides.
Interacting with Twitch is a custom implementation of the API via Undici (including authorization) and IRC for chat via tmi.js. Similarly to discord, the module provides an abstraction layer for handling commands sent in chat and handling moderation.
There are two additional components that are completely for arbitrary purposes, HTTP and Logging. HTTP is used internally for sending streaming status updates and as the redirect url for twitch authorization. It uses a custom abstraction layer on top of Nodes built in HTTP(s) API. Logging, done via Winston, is a typical console log for the internal workings of the module, and logs to a discord webhook for critical events. There are application options to configure both of these.
The final piece of the module is the database connection. The application relies on a mysql / mariadb database and connects to it via mysql2. This allows you to build in additional database queries should you need, but provides an abstraction layer for interacting with the base required databases.
Node.js 16.6.0 or newer is required.
- Website (source, based on top of discordjs)
- Documentation
- Corncierge Discord server
- GitHub
Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the documentation. Feel free to submit a PR at any time!
If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official Corncierge Help Desk.