|
@@ -23,18 +23,16 @@ level_header_title_content_map = {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-def send_msg_to_feishu(webhook, key_word, msg_text):
|
|
|
|
|
|
+def send_card_msg_to_feishu(webhook, key_word, card_json):
|
|
"""发送消息到飞书"""
|
|
"""发送消息到飞书"""
|
|
- print(f"推送飞书消息内容: {msg_text}")
|
|
|
|
headers = {'Content-Type': 'application/json'}
|
|
headers = {'Content-Type': 'application/json'}
|
|
payload_message = {
|
|
payload_message = {
|
|
- "msg_type": "text",
|
|
|
|
- "content": {
|
|
|
|
- "text": '{}: {}'.format(key_word, msg_text)
|
|
|
|
- }
|
|
|
|
|
|
+ "msg_type": "interactive",
|
|
|
|
+ "card": card_json
|
|
}
|
|
}
|
|
- # response = requests.request('POST', url=webhook, headers=headers, data=json.dumps(payload_message))
|
|
|
|
- # print(response.text)
|
|
|
|
|
|
+ print(f"推送飞书消息内容: {json.dumps(payload_message)}")
|
|
|
|
+ response = requests.request('POST', url=webhook, headers=headers, data=json.dumps(payload_message))
|
|
|
|
+ print(response.text)
|
|
|
|
|
|
|
|
|
|
def seconds_convert(seconds):
|
|
def seconds_convert(seconds):
|
|
@@ -44,40 +42,52 @@ def seconds_convert(seconds):
|
|
return f"{hours}小时 {minutes}分钟 {seconds}秒"
|
|
return f"{hours}小时 {minutes}分钟 {seconds}秒"
|
|
|
|
|
|
|
|
|
|
-def _monitor(level, msg, start, elapsed):
|
|
|
|
|
|
+def _monitor(level, msg: str, start, elapsed):
|
|
"""消息推送"""
|
|
"""消息推送"""
|
|
now = datetime.datetime.now()
|
|
now = datetime.datetime.now()
|
|
if now.hour > 6:
|
|
if now.hour > 6:
|
|
|
|
+ msg = msg.replace("\\n", "\n").replace("\\t", "\t")
|
|
mgs_text = f"- 当前时间: {now.strftime('%Y-%m-%d %H:%M:%S')}" \
|
|
mgs_text = f"- 当前时间: {now.strftime('%Y-%m-%d %H:%M:%S')}" \
|
|
f"\n- 任务开始时间: {start}" \
|
|
f"\n- 任务开始时间: {start}" \
|
|
f"\n- 任务耗时: {seconds_convert(elapsed)}" \
|
|
f"\n- 任务耗时: {seconds_convert(elapsed)}" \
|
|
f"\n- 任务描述: {msg}"
|
|
f"\n- 任务描述: {msg}"
|
|
card_json = {
|
|
card_json = {
|
|
- "config": {
|
|
|
|
- "wide_screen_mode": "true"
|
|
|
|
- },
|
|
|
|
- "elements": [
|
|
|
|
- {
|
|
|
|
- "tag": "div",
|
|
|
|
- "text": {
|
|
|
|
|
|
+ "config": {},
|
|
|
|
+ "i18n_elements": {
|
|
|
|
+ "zh_cn": [
|
|
|
|
+ {
|
|
|
|
+ "tag": "markdown",
|
|
|
|
+ "content": "",
|
|
|
|
+ "text_align": "left",
|
|
|
|
+ "text_size": "normal"
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "tag": "markdown",
|
|
"content": mgs_text,
|
|
"content": mgs_text,
|
|
- "tag": "lark_md"
|
|
|
|
|
|
+ "text_align": "left",
|
|
|
|
+ "text_size": "normal"
|
|
}
|
|
}
|
|
- }
|
|
|
|
- ],
|
|
|
|
- "header": {
|
|
|
|
- "template": level_header_template_map[level],
|
|
|
|
- "title": {
|
|
|
|
- "content": level_header_title_content_map[level],
|
|
|
|
- "tag": "plain_text"
|
|
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "i18n_header": {
|
|
|
|
+ "zh_cn": {
|
|
|
|
+ "title": {
|
|
|
|
+ "tag": "plain_text",
|
|
|
|
+ "content": level_header_title_content_map[level]
|
|
|
|
+ },
|
|
|
|
+ "subtitle": {
|
|
|
|
+ "tag": "plain_text",
|
|
|
|
+ "content": ""
|
|
|
|
+ },
|
|
|
|
+ "template": level_header_template_map[level]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- send_msg_to_feishu(
|
|
|
|
|
|
+ send_card_msg_to_feishu(
|
|
webhook=server_robot.get('webhook'),
|
|
webhook=server_robot.get('webhook'),
|
|
key_word=server_robot.get('key_word'),
|
|
key_word=server_robot.get('key_word'),
|
|
- msg_text=json.dumps(card_json)
|
|
|
|
|
|
+ card_json=card_json
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|