mirror of
https://github.com/hansjone/dsh-im-ops.git
synced 2026-10-10 16:40:46 +08:00
Merge pull request #48 from luochen211/fix/weixin-long-reply-chunking
fix: chunk long WeChat replies for iLink
This commit is contained in:
commit
36cbbe48e7
10 changed files with 219 additions and 174 deletions
|
|
@ -12,6 +12,7 @@ export const WEIXIN_QR_BASE_URL = 'https://ilinkai.weixin.qq.com/';
|
|||
export const WEIXIN_PROTOCOL_VERSION = '2.4.6';
|
||||
export const DEFAULT_BOT_TYPE = '3';
|
||||
export const WEIXIN_CDN_BASE_URL = 'https://novac2c.cdn.weixin.qq.com/c2c';
|
||||
export const DEFAULT_WEIXIN_MAX_MESSAGE_CHARS = 1_800;
|
||||
|
||||
const WEIXIN_CDN_HOST = 'novac2c.cdn.weixin.qq.com';
|
||||
|
||||
|
|
@ -744,7 +745,7 @@ export function weixinMessageId(message) {
|
|||
return nonEmptyString(message?.client_id);
|
||||
}
|
||||
|
||||
export function splitWeixinText(text, maxChars = 4_000) {
|
||||
export function splitWeixinText(text, maxChars = DEFAULT_WEIXIN_MAX_MESSAGE_CHARS) {
|
||||
if (text.length <= maxChars) return [text];
|
||||
const chunks = [];
|
||||
let remaining = text;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import {
|
||||
DEFAULT_WEIXIN_MAX_MESSAGE_CHARS,
|
||||
extractWeixinFiles,
|
||||
extractWeixinImages,
|
||||
extractWeixinText,
|
||||
|
|
@ -184,7 +185,7 @@ export class WeixinHarnessBridge {
|
|||
status = createWeixinBridgeStatus(),
|
||||
logger = console,
|
||||
replyTimeoutMs = 600_000,
|
||||
maxMessageChars = 4_000,
|
||||
maxMessageChars = DEFAULT_WEIXIN_MAX_MESSAGE_CHARS,
|
||||
signal,
|
||||
}) {
|
||||
if (!api || typeof api.sendText !== 'function') throw new TypeError('Weixin API is required');
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { WeixinApiError } from './weixin-api.mjs';
|
||||
import { DEFAULT_WEIXIN_MAX_MESSAGE_CHARS, WeixinApiError } from './weixin-api.mjs';
|
||||
import { createWeixinBridgeStatus, WeixinHarnessBridge } from './weixin-bridge.mjs';
|
||||
import {
|
||||
connectionTestTarget,
|
||||
|
|
@ -109,7 +109,7 @@ export class WeixinRuntime {
|
|||
state,
|
||||
logger = console,
|
||||
replyTimeoutMs = 600_000,
|
||||
maxMessageChars = 4_000,
|
||||
maxMessageChars = DEFAULT_WEIXIN_MAX_MESSAGE_CHARS,
|
||||
startRetryDelaysMs,
|
||||
}) {
|
||||
if (!api || !config || !token || !harness || !state) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue