/rustylogs

A versatile Discord bot written in Rust that listens to a configured channel and sends condensed changelogs to a targeted channel using ChatGPT.

Primary LanguageRust

Rustylogs

GitHub GitHub release (latest by date) GitHub Workflow Status

A versatile Discord bot written in Rust that listens to a configured channel and sends condensed changelogs to a targeted channel using ChatGPT.

Features

  • Configurable bot that listens to a designated channel for prompts.
  • Utilizes ChatGPT to generate a condensed changelog from the prompt.
  • Sends the generated changelog to a specified channel.
  • Open-source and highly customizable.

Table of Contents

Installation

To get started, follow these steps:

  1. Clone the repository:
git clone https://github.com/glazk0/rustylogs.git
  1. Build the bot
cargo build --release
  1. Run the bot
./target/release/rustylogs

The bot The bot will be up and running and initializing the database.sqlite, you will just need to configure it through the administrators commands.

Configuration

Before using the bot, make sure to configure it by editing the config.toml file. You can set the following parameters:

  • token: Your Discord bot token.
  • api_key: Your ChatGPT API key.
  • prompt: Your customized changelog prompt.

Usage

  1. Invite the bot to your Discord server and ensure it has the necessary permissions.
  2. Configure the bot as described in the "Configuration" section.
  3. Start the bot using the installation instructions.

Contributing

I welcome contributions from the community. If you have ideas for improvements or find issues, please open a pull request or submit an issue.

TODO

  • Create the client
  • Read the TOML configuration on init (support a hot reload ?)
  • SQLX Sqlite support
  • Listen to configured channel
  • Create the output with ChatGPT
  • When new message, generate the output (configurable verification prompt ? i.e: Here is the output that will be send to: ...)
  • Listen to component (such as the validation stuff)
  • Send the output to send_to
  • Add Docker support
  • Refactor
  • Add better logging