FireDiscordBot / bot

A Discord bot for all your needs. With memes, utilities, moderation & more, Fire is the only bot you'll need.
https://getfire.bot/
GNU Affero General Public License v3.0
400 stars 73 forks source link

[SUGGESTION] Ability to add logging excludes for bots such as pluralkit #162

Closed solonovamax closed 1 year ago

solonovamax commented 1 year ago

Is your feature request related to a problem? Please describe. There exist discord bots such as PluralKit or Tupperbox that allow you to "proxy" your messages under a different name/pfp. This is done by deleting the original message, removing any prefix/postfix, and then sending it again using a webhook with a custom image and display name.

Describe the solution you'd like Currently, this generates excessive logs, as it deletes every single message. It would be great if Fire could instead only log delete events that come from the pluralkit (or tupperbox) bot that are deleting webhook messages or messages from the bot. since that sentence is a bit wordy, here's some basic examples. Ticked boxes are logged, unticked ones are not.

Additionally, if you wish to also log the original user the message came from, that can be fetched using pluralkit's API, which returns the id of the user who sent the message (among other things), and this can be fetched on every webhook message, then stored until the message expires in the cached history kept for edits/deletions

Describe alternatives you've considered Alternatively, this can be deemed "out of scope" or as having "too much feature creep" and not be implemented.

GamingGeek commented 1 year ago

The only way to know who deleted a message that was sent by a user is if Fire has audit log permissions and it was deleted by another user & not a bot. Deletions of messages sent by a bot/webhook aren't logged

This would delay logging of deleted messages and could result in lost logs if there're issues with fetching the data (or if an audit log event is never received once I switch to using them) so it's not ideal

I've heard of these bots but am not familiar with their APIs, do they provide any way to know if the message was deleted by them? I wouldn't be surprised if they'd be more reliable than audit logs but there'd still be a delay

solonovamax commented 1 year ago

The only way to know who deleted a message that was sent by a user is if Fire has audit log permissions and it was deleted by another user & not a bot. Deletions of messages sent by a bot/webhook aren't logged

ah, I see. at least, filtering the deletions of user-messages by the bot could be done, though?

This would delay logging of deleted messages and could result in lost logs if there're issues with fetching the data (or if an audit log event is never received once I switch to using them) so it's not ideal

I was assuming this information would instead be fetched asynchronously when the message is sent, and then stored in the author field.

I've heard of these bots but am not familiar with their APIs, do they provide any way to know if the message was deleted by them? I wouldn't be surprised if they'd be more reliable than audit logs but there'd still be a delay

pk provides an api to fetch the id of the original (deleted) message, using the id of the webhook's message. However, this requires waiting for the webhook's message event before logging, which is probably sub-optimal

GamingGeek commented 1 year ago

ah, I see. at least, filtering the deletions of user-messages by the bot could be done, though?

Bots deleting messages aren't logged in audit logs

I was assuming this information would instead be fetched asynchronously when the message is sent, and then stored in the author field.

How would I fetch who deleted a message when the message is sent?

pk provides an api to fetch the id of the original (deleted) message, using the id of the webhook's message. However, this requires waiting for the webhook's message event before logging, which is probably sub-optimal

I wouldn't be able to reliably wait for the webhook message

solonovamax commented 1 year ago

Bots deleting messages aren't logged in audit logs

ah, I see.

How would I fetch who deleted a message when the message is sent?

nvm, I just realized, there isn't a good way to do this. idk why I thought there was.