Merge pull request #335 from an-anthony/feature-wechat-cp

优化企业微信输出长度限制
This commit is contained in:
zhayujie
2023-04-28 00:18:45 +08:00
committed by GitHub

View File

@@ -6,6 +6,8 @@
@file: wechat_com_channel.py
"""
import time
from channel.channel import Channel
from concurrent.futures import ThreadPoolExecutor
from common.log import logger
@@ -45,8 +47,21 @@ class WechatEnterpriseChannel(Channel):
app.run(host='0.0.0.0', port=_conf.get('port'))
def send(self, msg, receiver):
logger.info('[WXCOM] sendMsg={}, receiver={}'.format(msg, receiver))
self.client.message.send_text(self.AppId, receiver, msg)
# 切片长度
n = 450
if len(msg) < n:
logger.info('[WXCOM] sendMsg={}, receiver={}'.format(msg, receiver))
self.client.message.send_text(self.AppId, receiver, msg)
return
# 分割后的子字符串列表
chunks = [msg[i:i+n] for i in range(0, len(msg), n)]
# 总消息数
total = len(chunks)
# 循环发送每个子字符串
for i, chunk in enumerate(chunks):
logger.info('[WXCOM] sendMsg={}, receiver={}, page_number={}, page_total={}'.format(msg, chunk, i+1, total))
self.client.message.send_text(self.AppId, receiver, chunk)
time.sleep(1) # 用延迟的方式使微信插件的输出顺序正常
def _do_send(self, query, reply_user_id):
try: