python-discord / meta

Issue tracker for suggestions and other questions relating to our community
https://pythondiscord.com
31 stars 5 forks source link

Keep !helpdm setting on for users that toggle server DMs on & off #155

Closed minalike closed 2 years ago

minalike commented 2 years ago

Re: PR python-discord/bot#1629 and discussion on server

Currently when a user runs the !helpdm on command and subsequently closes their server DMs, when bot's DM fails to deliver the user is then set to not receive help DMs. The user has to remember to rerun the !helpdm on command again after re-opening their server DMs at a later date.

This is cumbersome for users who frequently toggle their server DMs on and off.

It would be nice to disable this behavior and find a way to keep the setting as is even when bot's DMs fail to be delivered to the user.

Currently the bot also pings the user in #bot-commands when a DM fails to send, but it is deleted so quickly that I never noticed. We could consider not deleting this message, or extending the amount of time before deletion to give a user a chance to actually see the message.

minalike commented 2 years ago

I turned off DMs earlier today and forgot to turn them back on before participating in a help channel. I did see the ping notification in #bot-commands but by the time I got there message was already gone. What is the current delay before message deletion?

hedyhli commented 2 years ago

This feature (turning off helpdms if user don't have DMs on) is added in python-discord/bot#1642, which uses bot.constants.RedirectOutput.delete_after for deleting after a short period of time. In config-default.yml it's set to 15 (seconds). As someone mentioned in #dev-contrib a few days ago, it was to fix python-discord/bot#1640 "403 Forbidden" error when attempting to send DMs to users who have it turned off.

If we were to keep the setting on after hitting the error, we could possibly just ignore the error, but it isn't a good idea when users who have this feature on don't know they had to turn on their DMs. Perhaps a better solution is to not have it auto-delete after a period of time, instead, having a trash can emoji or with discord UI button so the user can manually remove the message.

minalike commented 2 years ago

I'll go ahead and close this issue as I believe I might have been the only user that really wanted it, and I've since found a workaround.

The added complexity with avoiding excessive 403 errors seem not to be worth it.

The idea of extending the period of time before messages are deleted in #bot-commands or transforming it to be deleted via trash can emoji reaction can be raised in another separate issue if we so wish.