Discord在我的机器人

时间:2018-01-14 17:12:42

标签: python python-3.x beautifulsoup discord discord.py

我的代码工作正常,机器人发送链接,但Discord不会将其识别为一个并且不会嵌入它。当我自己复制并粘贴它时,它会将其识别为链接并嵌入图像。这是我的代码:

if message.content.startswith(".dog"):

    response = requests.get("https://dog.ceo/api/breeds/image/random")
    soupRaw = BeautifulSoup(response.text, 'lxml')
    soupBackend = str(soupRaw).split("message")
    soup2 = soupBackend[1]
    soup3 = soup2[3:]
    soup = soup3[:-20]

    await bot.send_message(message.channel, soup)

以下是一个示例:https://imgur.com/m9GM2wQ

有没有人知道如何在我的机器人发送链接时嵌入链接?谢谢你的帮助!

编辑:我没有尝试发送嵌入式消息,我正在尝试发送一个将由Discord嵌入的链接,如我的示例所示。这不是一个重复的问题。

1 个答案:

答案 0 :(得分:0)

答案很晚,但是如果有人正在查看此答案供以后参考;我认为问题在于您的变量soup包含每个正斜杠(例如,)的转义字符(反斜杠)。 https:\\/\\/images.dog.ceo\\/breeds\\/maltese\\/n02085936_4480.jpg

以消息形式发送此消息(即使是普通用户)也会显示该链接,但该链接不会自动为其创建嵌入。您可以将反斜杠替换为功能soup.replace("\\", "")

但是,我建议使用一种完全不同的方法,因为response对象具有一个.content属性,该属性采用json格式,可以轻松地解析,并用作python dict,使用内置的import json库(它将自动为您保留转义码,您不必担心response.text的字符串长度)。

soup = json.loads(response.content).get("message")应该可以解决问题。