Форматирование сообщений 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

person Dr. Nefario    schedule 06.03.2017    source источник


Ответы (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 кодировкой, которую использует ваша система.

person Nick Groenen    schedule 06.03.2017
comment
Отлично! Большое спасибо! Вы случайно не знаете, как я бы добавил еще три обратных кавычки, чтобы сделать его слабым фрагментом? Это так же просто, как добавить еще три обратных кавычки? га - person Dr. Nefario; 06.03.2017
comment
Нет, сниппеты в slack — это тип загрузки файлов: api.slack.com/methods/files. загрузить. Errbot поддерживает загрузку файлов для Slack, но не как фрагмент, я полагаю, поэтому, если вы хотите сделать это, вам придется самостоятельно вызывать Slack API (некоторые документы по этому вопросу доступны по адресу errbot.io/en/latest/user_guide/plugin_development/) - person Nick Groenen; 06.03.2017