fix: Add edit support to ThreadedWebhook

This commit is contained in:
2026-07-30 12:42:53 +03:00
parent 1cc93d732e
commit 99d1193be6
+10 -3
View File
@@ -17,22 +17,25 @@ def LOWER(expression: Expression) -> RawExpr:
return RawExpr(final_expr, final_values)
def asexpr(value: Any) -> RawExpr:
"""
Turn a value into an expression.
"""
return RawExpr(sql.Placeholder(), (value,))
async def fire_and_forget(awaitable, do_in=1, ignorable=(discord.HTTPException)):
await asyncio.sleep(do_in)
try:
await awaitable
await awaitable
except ignorable:
pass
except Exception as e:
# TODO: Log unexpected exceptions
pass
class ThreadedWebhook(discord.Webhook):
__slots__ = ("thread_id",)
@@ -55,10 +58,14 @@ class ThreadedWebhook(discord.Webhook):
kwargs.setdefault("thread", discord.Object(self.thread_id))
return await super().send(*args, **kwargs)
async def edit_message(self, *args, **kwargs):
if self.thread_id is not None:
kwargs.setdefault("thread", discord.Object(self.thread_id))
return await super().edit_message(*args, **kwargs)
async def test_webhook(self):
embed = discord.Embed(
title="Testing",
description="Testing logging webhook, feel free to delete."
title="Testing", description="Testing logging webhook, feel free to delete."
)
result = await self.send(embed=embed, wait=True, silent=True)
asyncio.create_task(fire_and_forget(result.delete()))