格式化Errbot发送的Slack消息

时间:2017-03-06 06:51:50

标签: python slack-api slack errbot

我正在使用subprocess.check_output向slack发送消息。格式是乱七八糟的,我正在考虑尝试markdown == false,但只想让它按模块设置,并且不确定如何做到这一点。我不确定这是否会解决我的问题,更大的问题是如何格式化以下文本以便可读

bad formatting

应该看起来像(或接近):

clean formatting

代码:

@botcmd
def find_vm(self, args, SearchString):
    output = subprocess.check_output(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", ". \"C:\\Program Files\\Toolbox\\PowerShell Modules\\vmware\\./vmware.psm1\";", "find-vm", SearchString])
    return output

1 个答案:

答案 0 :(得分:2)

将输出包装在三重反引号中,表示Markdown中的代码块。还要注意你应该解码subprocess.check_output的输出,因为它返回一个字节流,而不是" text"我们倾向于考虑它:

@botcmd
def find_vm(self, args, SearchString):
    output = subprocess.check_output(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", ". \"C:\\Program Files\\Toolbox\\PowerShell Modules\\vmware\\./vmware.psm1\";", "find-vm", SearchString])
    return "```\n{output}\n```".format(output=output.decode("utf-8"))

请务必使用您的实际系统使用的编码替换utf-8。