使用Discord接受输入并在连接的客户端上执行

时间:2017-03-06 03:44:47

标签: python python-3.x discord

我目前使用Python Discord预制脚本连接到Discord频道。我把它设置得很好,它的工作原理。我能够创建命令并使其成为我想要的。但是我想知道是否有可能在Discord上发送像!dir,!net use,!wmic等命令,并让它在连接的客户端上运行,就像它直接与机器交互一样。像一个shell,但通过Discord?

我当前的代码是在此处找到的脚本:https://github.com/Rapptz/discord.py

我一直在使用套接字并使用子进程,但不知道如何使用Discord API执行此操作。

1 个答案:

答案 0 :(得分:0)

我找到了我想要的答案。

if message.content.startswith('!cmd'):
    await client.send_message(message.channel, 'Enter command')
    msg = await client.wait_for_message()
    proc = subprocess.Popen(msg.content, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                            stdin=subprocess.PIPE)
    stdout_value = proc.stdout.read() + proc.stderr.read()
    await client.send_message(message.channel, stdout_value)

基本上,一旦机器人检测到我说!cmd,它就会要求命令。然后我可以输入ipconfig,net user或者我想要的任何命令,机器人将像执行命令一样执行它们。