如何编写我的机器人程序从一个命令生成随机图像

2024-06-02 07:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在决定做这个职位之前已经看过了。我试过一些答案中的代码,但它们对我无效。请注意,我对一般的编码是新手;我开始使用Python大约一周了。我设法编写我的Discord bot代码,从一个命令生成随机图像,但是我认为我做得不对。这些图像是随机发送的,但它们的链接显示在机器人的消息中。下面是我的代码:

client = Bot(command_prefix=BOT_PREFIX)

@client.event
async def on_message(message):
    if message.content.upper().startswith("?DOG"):
        jessie1 = "https://cdn.discordapp.com/attachments/432563417887277060/484484259386621993/22B25E7A-3157-4C23-B889-47ECFE8A15A9.jpg"
        snowy = "https://cdn.discordapp.com/attachments/487045791697862666/487390822485065749/824B6151-E818-49A4-A564-C2C752ED6384.jpg"
        await client.send_message(message.channel, random.choice([snowy, jessie1]))

我现在用两个图像作为例子,因为有很多我不想一下子包括在内的。在

我可以使用一个命令随机生成这两个图像,但我不知道如何编码,这样当机器人发送图像时,它们的链接就不会出现在机器人的消息中。在

我想知道是否有一种方法可以做到这一点,而不必对我目前的代码进行巨大的更改。但是,如果有一个有效/正确的方法来做,我很乐意接受您的建议,以获得更好的体验。在

我想说的是,当机器人发送这些图像的时候,我也会说。我对如何做到这一点有一个想法,但我需要先解决我的第一个问题xD


Tags: 代码https图像命令comclient消息message
3条回答

根据documentation的规定,你不能像从本地来源上传图片那样上传图片,所以你也可以

使用send_file从本地源上载

await client.send_file(message.channel, 'my_image.png')

或者

嵌入URL

^{pr2}$

在您的命令中,您应该创建一个图像对象列表,并random.choice它。在

如上所述,在询问之前,您应该先阅读文档。另外,堆栈溢出不是快速获得答案的方法,而是不和.py位于https://discord.gg/r3sSKJJ的支持服务器。 最后要说明的是,这个库的一个新版本将很快发布,它将引入一些突破性的更改,可以阅读here。在

我所知道的“不和谐”是我在过去30年代读到的,但是我想到了一些事情:

“client”对象来自何处?如果像显示链接和不显示这样的东西在你的端甚至是可控的,我敢打赌这是一个你可以在客户端设置的选项。有没有client.someattr?像client.show_link=False?或者,有什么可以传递给构造器的吗?在

client = Client(foo, bar, show_links=False)

或者。。。也许,你不想发送文本(这就是你所做的),而是想构造并发送某种“图像”对象。。。?在

^{pr2}$

请注意,这些都是100%的猜测,没有阅读文档。这一切都是基于对许多不同的库、api的熟悉程度。在

我想在通知你的问题上也是一样。我需要看更多的医生。也有可能这不是你能控制的,不管你喜不喜欢,另一端都会看到

相关问题 更多 >