A Discord mod mail bot that uses web-hooks for the most seamless communication experience (planned). intended for self-hosting
Go to file
Southpaw 2d3558525a Update README with python deprecation 2021-10-08 09:14:41 +01:00
.github/ISSUE_TEMPLATE Add issue templates 2021-02-03 21:39:33 +00:00
.vscode Add VSCode folder (might be gone later) 2021-02-03 12:38:12 +00:00
.env.example Add functionality to ping configured rolls on ticket creation 2021-07-30 16:39:01 +01:00
.gitignore Add .db files to Gitignore 2021-02-03 12:37:38 +00:00
LICENSE Initial commit 2021-01-28 10:38:40 +00:00
README.md Update README with python deprecation 2021-10-08 09:14:41 +01:00
bot.py Add functionality to ping configured rolls on ticket creation 2021-07-30 16:39:01 +01:00

README.md

Hedwig (BETA)

⚠️ Important ⚠️

Due to the discontinuation of Discord.py, which Hedwig needs in order to connect to Discord, the python version is no longer recommended. I am working on rewriting it in Kotlin (using the excellent Kordex library), which will mean that she comes as a single JAR file with no dependencies to install. There is no ETA for when this will be ready, but I am hoping to finish before the year's end.

Latest Releases

Note: Hedwig is in BETA. There shouldn't be too many (if any) bugs as the code is pretty simple, but it is in no way feature complete.

Hedwig (named after the faithful letter-carrying owl in Harry Potter) is a simple mod mail bot. Mod mail works on a simple premise: A user will DM the bot, and the bot will create a channel in a designated category in your server, just for that user. Any messages they send to the bot will be relayed to that channel, and any messages sent in their channel will be relayed, annonymysly, to the DM. In this way, any reports can be handled efficiently, collaberatively and anonymously by your moderation team.

Why use Hedwig?

Planned 1.0 Features

Possible Future Features

Installing

Contributing

Support

Known Issues

Why use Hedwig?

While Hedwig may not be the most full-featured mod mail bot out there, there are a few reasons why you might want to use Hedwig over a similar mod mail or ticket bot.

  1. Hedwig is simple: Because I don't know how to write complex code, Hedwig is written in simple language. This means that she is easier to modify for your own purposes if you want (which you can do; Hedwig is lisenced under MIT), and it means she's less likely to break and easier to fix if something goes wrong. Even if you're not much of a coder, I designed Hedwig to be easy to set up: Just install the dependencies, fill in the environment variables, start the script and off you go!

  2. Hedwig is designed to be self-hosted: While Hedwig is not the only self-hosted mod-mail bot out there, being self-hosted gives her some advantages over public mod-mail bots. First, you can customise its name and avatar all you want. Want her in a Greek mythology-themed server? Name her Hermes and give her some winged boots, she won't mind. Second, there is no need for the user to select the server they wish to DM every time they DM the bot in case they share multiple servers with her, as she only exists in one server (yours).

  3. [Planned] Hedwig uses webhooks: The primary reason I created Hedwig instead of using an existing bot is so that she can take advantage of webhooks. Unlike plain messages or cluttered embeds, webhooks make it seem (in the server channels) as though you are directly communicating with the user in question, so that you don't forget which one you're talking to.

Planned 1.0 Features

These features will be added to Hedwig before the first full release.

  • Webhook Support: Hedwig will be able to use webhooks to display users you're communicating with in their channel.
  • Channel archiving: Hedwig will be able to move channels marked as resolved channels to an archive category where they can live until needed again Welcome message: If a user is not in Hedwig's database, she'll send them a message expalining how she works the first time they DM her. Reaction Confirmation: Headwig will react to a message so that you can confirm if you want to send it or not (and cancel messages that were an accident). Server-side mail initialisation: The name needs work, but this feature will allow the moderators of a server to initiate a modmail conversation with any user who is a member of that server.

Possible future features

  • Discord / command support

Installing

(Detailed instructions for installation will be in the wiki on the full release, if you're running the beta you probably know somewhat what you're doing)

  1. Create an application at https://discord.com/developers and add a bot user. Configure the name and avatar as you wish (it would be nice if you named it Hedwig but you don't have to). Save the bot token for later (but keep it secret).
  2. Download the Latest Release
  3. Install python 3.8.6 and the necessary dependancies: sqlite3 (installed by default), discord.py (pip install discord.py) and dotenv (pip install python-dotenv)
  4. Fill out the values in the .env.example
  5. Run the bot

Contributing

Pull requests that fix bugs will generally be accepted. Those at add features will generally not be accepted. If you want a feature pull request to be accepted, the best way to improve your chance is to create a Feature Request Issue and wait to get that approved before PRing

Support

If you need support with installing or using Hedwig (AFTER following the installation instructions) you can DM me on Twitter or Discord (Southpaw#1496, will only work if we share a server with DMs on), or you can create a GitHub issue. I may create a Discord server if there is enough demand.

Known Issues

  • Deleting a channel Hedwig-created channel will probably make bad things happen as there is nothing to remove the channel's entry from the database. Fixed in Beta 2