disnake icon indicating copy to clipboard operation
disnake copied to clipboard

inconsistency with message editing after interaction token expires

Open onerandomusername opened this issue 3 years ago • 1 comments

Summary

messages sent with Inter.followup.send cannot be edited after 15 minutes

Reproduction Steps

see code below

Minimal Reproducible Code

await inter.send('h')
m = await inter.followup.send('h')
await asyncio.sleep(60 * 15)
await m.edit(content='j')

Expected Results

Message could be edited, or at least was not a token expired error.

Actual Results

The message could not be edited.

Intents

not relevant

System Information

disnake version: 2.6.0a4267+g1c9ddd8c

Checklist

  • [X] I have searched the open issues for duplicates.
  • [X] I have shown the entire traceback, if possible.
  • [X] I have removed my token from display, if visible.

Additional Context

Related to #626

There is already handling in InteractionMessage which handles these cases, except that InteractionMessage uses different underlying methods than Webhooks use.

To solve this, we can explore several different solutions. For starters, we can consider a new InteractionWebhook class (which we could make use HTTPClient instead of the current Webhook implementation. This would also enable missing proxy support). The next part would be a possible InteractionWebhookMessage class which would a custom edit and delete implementation to include webhook token expiry and fallback to the bot token if they have expired.

One other possible solution would be implementing this support onto the existing Webhook and WebhookMessage class, in order to support editing followups even after the token expires.

@shiftinv @Chromosomologist

onerandomusername avatar Jul 16 '22 05:07 onerandomusername

related issue: #261

shiftinv avatar Jul 29 '22 11:07 shiftinv