首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在命令中放松api,但在调试中出现了一些错误

尝试在命令中放松api,但在调试中出现了一些错误
EN

Stack Overflow用户
提问于 2022-02-10 04:56:46
回答 1查看 37关注 0票数 1
代码语言:javascript
复制
@client.command() 
async def eth(ctx):
  while True:
    r = requests.request("GET", eth_api, headers=headers)
    data2 = r.json()
    eth_price = data2['data']['rates']['USD']
    await ctx.message.delete()
    await ctx.send(f"The price of ETH is {eth_price}$")
    sleep(0.2)
代码语言:javascript
复制
Ignoring exception in command eth:
Traceback (most recent call last):
  File "/home/runner/Elon-Musk/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "main.py", line 35, in eth
    await ctx.message.delete()
  File "/home/runner/Elon-Musk/venv/lib/python3.8/site-packages/discord/message.py", line 1023, in delete
    await self._state.http.delete_message(self.channel.id, self.id)
  File "/home/runner/Elon-Musk/venv/lib/python3.8/site-packages/discord/http.py", line 250, in request
    raise NotFound(r, data)
discord.errors.NotFound: 404 Not Found (error code: 10008): Unknown Message

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/Elon-Musk/venv/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "/home/runner/Elon-Musk/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/home/runner/Elon-Musk/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NotFound: 404 Not Found (error code: 10008): Unknown Message

每当我使用该命令时,我都会在调试中得到这个错误,但是该命令运行良好,我认为这是因为它试图在循环中删除--这就是为什么,刷新API并执行它的更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-10 16:27:34

您的问题是await ctx.message.delete()行--在while循环的第一次迭代期间,原始命令消息将被删除。这意味着它将不再可用,并且从第二次迭代开始,再次尝试删除它将导致您所看到的错误,因为消息不再存在。您可以通过简单地将await ctx.message.delete()行移出while循环来解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71059986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档