Форматирование сообщений Slack, отправленных с Errbot
Я отправляю сообщение в Slack, используя subprocess.check_output. Формат беспорядок, я думал о попытке markdown == false, но хотел, чтобы он был установлен для каждого модуля, и я не уверен, как это сделать. Я не уверен, что это решит мою проблему, но большая проблема в том, как отформатировать следующий текст, чтобы его можно было прочитать
должно выглядеть (или близко к):
Код:
@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 ответ
Решение
Оберните ваш вывод в тройные обратные кавычки, которые обозначают блок кода в Markdown. Также обратите внимание, что вы должны декодировать вывод subprocess.check_output
потому что он возвращает поток байтов, а не "текст", как мы обычно думаем об этом:
@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 на кодировку, которую использует ваша настоящая система.