TulipSMP / Tiramisu

Here to help with moderation and community management!
BSD 3-Clause "New" or "Revised" License
6 stars 1 forks source link

ModMail #81

Closed MaxsRepo closed 10 months ago

MaxsRepo commented 1 year ago

Description

Add a feature that allows users to DM Tiramisu, then the contents of the DM will be sent to a thread that is created, most likely named something like, "Appeal {user}" or "Appeal 1" for a chosen role to see. There can also be an option for a user to write back, and send an embed with the contents of what a user has replied with. Example: Example Image. And when the appeal is done, there can be a command for someone to close the thread, and it will send an embed to the user that DM'd Tiramisu, saying the thread has been closed. Example: Thread Closed image. This will benefit banned & timed out users so they can appeal, instead of DM'ing staff.

Reasoning

You should add this, as it is a better alternative to DM'ing a staff member, or filling out a Google/MS/Online form, and it sends it so a certain role (most likely moderators) can give their opinion on it in a specific channel/thread. It also can help to organise appeals, as all staff/chosen role won't be able to access the form (only if there is one person that can access the account the forms are made by), and it also is useful that you can click to see all threads, and the appeals will be in there, for staff to see, and look back on, which is helpful for future appeals. This will also help banned/muted users, as if they ask for an in-depth reason as to why they were punished.

Confirmation

TheKrafter commented 1 year ago

Fizz has suggested having an online panel for tickets, so users outside of discord could file tickets, which could be used for appeals.

I would caution against using DMs, as Tiramisu is structured in such a way so one "instance" of Tiramisu can be employed on as many guilds as necessary.

In order to do what fizz proposes, we'd need to implement a REST api ( #77 ) with the ability to manage tickets externally and send/read messages in them, and then create an accompanying web panel that sends requests to that API.

This would also require storing tickets and their details in DB, which we currently don't do (we currently just have a check in libs/ticketing.py:is_ticket(), and we get the ticket creator from the list of mentions in the first message we send in the ticket).

As you can see, this requires a LARGE dev effort, and is kinda tacky overall, when Tiramisu is focused on simplicity and elegance.

We may implement something that fulfills the purpose of this in the future, but not before we have the foundations for it implemented.