前一段时间,我制作了一个不和谐的bot,目的是涉及我和我的朋友所需要的消息嵌入。长话短说,由于主机(树莓派)死亡,该机器人下线了大约一年。今天是快速转发,我们再次需要它,因此我尝试将其启动,但是注意到我的大多数代码不再起作用,因为discord.py的异步分支已更新为v1.0,这带来了重大更改和要求迁移代码以符合新库。通过查看文档,我能够弄清楚所有内容,除了我的机器人的嵌入部分。哪个是最重要的。
这是我将重点关注的代码,后面会有更多内容,但这与本部分无关,因为如果我可以在字符串中成功存储我想要的值,那么其余的应该起作用。
async def on_message(message):
serverid = message.guild.id
channel = message.channel
messagecontent = message.content
if message.embeds:
try:
charaname = message.embeds[0]['author']['name']
charaseries = message.embeds[0]['description']
except AttributeError:
return
我基本上想做的是,如果一条消息有一个嵌入,那么我需要将名称和描述值存储在单独的字符串中,以供以后在代码中使用。但是我试图这样做:
Ignoring exception in on_message
Traceback (most recent call last):
File "C:\discord\client.py",line 270,in _run_event
await coro(*args,**kwargs)
File "C:\path_to_script",line 35,in on_message
charaseries = message.embeds[0]['description']
TypeError: 'Embed' object is not subscriptable
一些研究告诉我,“可下标”是指一个对象可以包含多个其他对象(例如列表)的时间。 here的解释更好。如果它不是可下标的,那么我想新库将具有全新的处理方式,我似乎无法弄清楚。因此,我需要帮助来了解这里到底发生了什么,以便我可以修改代码并使这部分再次工作。
非常感谢您的帮助,谢谢!