This bot is a .NET-based Discord bot designed to track library development progress and interact with Notion for discord alpha tests.
This project only works for notions based on the following template: https://www.notion.so/marketplace/templates/discord-lib-devs-implementations-tracking
If you want to use it with other notions, you'll need to modify the code yourself. But be warned, notions API is a shithole :^)
- Discord Bot Integration: Connects to Discord and responds to commands and interactions.
- Notion Integration: Fetches and updates project data from Notion databases.
- Application Commands: Supports Discord slash commands for user interaction.
- Configurable: Uses a JSON configuration file for easy setup.
Structure
Program.cs
: Entry point for the application.DiscordBot.cs
: Main bot logic and Discord client setup.ApplicationCommands.cs
: Implementation of Discord application (slash) commands.Interactions.cs
: Handles Discord interaction events.Providers.cs
: Abstraction for data providers (e.g., Notion).NotionRestClient.cs
: REST client for Notion API.Entities/
: Contains data models and Notion-related entities.config.json
: Configuration file (seeconfig.example.json
for template).
Getting Started
- .NET 9.0 SDK
- A Discord bot token
- Notion integration token and corresponding IDs
-
Clone the repository:
git clone https://github.com/Aiko-IT-Systems/AITSYS.Discord.LibraryDevelopmentTracking.git cd AITSYS.Discord.LibraryDevelopmentTracking/src
-
Configure the bot:
- Copy
config.example.json
toconfig.json
and fill in your credentials and settings.
- Copy
-
Build the project:
dotnet build
-
Run the bot:
dotnet run
For Linux deployment, use the provided publish.sh
script:
cd AITSYS.Discord.LibraryDevelopmentTracking/linux
./publish.sh
At the current stage, contributions are not being accepted. Future plans may include opening the project for community contributions.
This project is licensed under the AGPL-3.0-or-later License. See LICENSE.md
and LICENSE_NOTICE.md
for details.
- DisCatSharp for Discord API integration
- Notion API for project management features
- Newtonsoft.Json for JSON handling
- Matthias Frank for Notion color mapping