nonebot / adapter-discord

NoneBot2 Discord 适配器 / Discord adapter for nonebot2
20 stars 6 forks source link

[bug] Webhook: execute_webhook时报错 #14

Closed Autuamn closed 6 months ago

Autuamn commented 6 months ago

版本

log

    send = await bot.execute_webhook(
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\adapter\bot.py", line 122, in call_api
    raise exception
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\adapter\bot.py", line 97, in call_api
    result = await self.adapter._call_api(self, api, **data)
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\adapters\discord\adapter.py", line 449, in _call_api
    return await api_handler(self, bot, **data)
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\adapters\discord\api\handle.py", line 2894, in _execute_webhook
    request = Request(
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\driver\model.py", line 108, in __init__
    url = url.update_query(params)
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\yarl\_url.py", line 1017, in update_query
    s = self._get_str_query(*args, **kwargs)
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\yarl\_url.py", line 971, in _get_str_query
    query = "&".join(self._query_seq_pairs(quoter, query.items()))
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\yarl\_url.py", line 934, in _query_seq_pairs
    yield quoter(key) + "=" + quoter(cls._query_var(val))
  File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\yarl\_url.py", line 949, in _query_var
    raise TypeError(
TypeError: Invalid variable type: value should be str, int or float, got True of type <class 'bool'>

参数

send = await bot.execute_webhook(
    webhook_id=webhook_id,
    token=token,
    content=text or "",
    files=files,
    embeds=embed,
    username=username,
    avatar_url=avatar_url,
    wait=True
)

尝试

怀疑在构建 webhook url 时没有把 wait 的值转为 str

在把 File "nonebot\adapters\discord\api\handle.py", line 2894, in _execute_webhook

params["wait"] = data.pop("wait")

改为

params["wait"] = str(data.pop("wait"))

后没有报错并发送成功

没有更多发现

CMHopeSunshine commented 6 months ago

感谢反馈,方便发个PR来修复吗