如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)

Posted

技术标签:

【中文标题】如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)【英文标题】:How to make Discord bot send image with the name of number chosen by user? (Python 3.5.x) 【发布时间】:2018-02-10 00:02:31 【问题描述】:

我仍在学习 python 和编程,但我遇到了一个我无法解决的问题。我想制作一个命令,让机器人发送一个图像,其名称对应于用户写的数字(例如,用户写了“!image_nr 22”,机器人发送 22.jpg)。我只编写了从文件夹发送随机图像的代码,但我无法选择。这是我针对此问题的最新代码:

 elif message.content.startswith("!obrazeknr"): #missing an argument or something, idk what to make here
        obrazDirectoryChc = "C:/Users/Lewando54/Downloads/Localisation/English/" + liczba + ".jpg"
        await client.send_file(message.channel, obrazDirectoryChc, content=obrazName[1])

【问题讨论】:

【参考方案1】:

你可以试试这个 elif 语句:

msg = message.content[12:] #skips the command word and the '!' and the " "

msg = msg.split() #split the message into an array at the spaces.
#msg = ["!image_nr","22"]

if msg[0] == "!image_nr" and msg[1].isnumeric():

 obrazDirectoryChc = "C:/Users/Lewando54/Downloads/Localisation/English/" + 
     liczba + ".jpg"
 await client.send_file(message.channel, obrazDirectoryChc, 
     content=obrazName[int(msg[1]])

现在它应该发送用户请求的照片。

例如!obrazeknr image_nr 22

希望这会有所帮助。抱歉让您久等了;我今天才看到这个。

可能是一个更好的主意,下次在https://programming.***.com 上发帖可以为您提供更多帮助。

【讨论】:

【参考方案2】:

它有效。我稍微修改了一下,它就可以工作了。谢谢你的想法:D

elif message.content.startswith('!obrazeknr'):
    msg1 = message.content #skips the command word and the '!' and the " "  
    msg1 = msg1.split() #split the message into an array at the spaces.
    #msg = ["!obrazeknr","22"]
    if msg1[0] == "!obrazeknr" and msg1[1].isnumeric() == True:
        await client.send_file(message.channel, "C:/Users/Lewando54/Downloads/Localisation/English/" + str(int(msg1[1])) + ".jpg")

【讨论】:

以上是关于如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Discord Bot 选择频道

如何让 discord bot 等待回复 5 分钟然后发送消息?使用不和谐的 js

Discord.py bot - 如何让机器人在 DM 中向我发送用户的消息?

如何使用 discord.js 从 discord bot 向特定用户发送消息

discord bot c# 读取收到的直接消息

如何使用 discord Bot 类获取给定 discord id 的用户信息?