(message: any)
| 294 | } |
| 295 | |
| 296 | let placeholder = ""; |
| 297 | if (message?.photo) { |
| 298 | placeholder = "[图片]"; |
| 299 | } else if (message?.video) { |
| 300 | placeholder = "[视频]"; |
| 301 | } else if (message?.voice) { |
| 302 | placeholder = "[语音]"; |
| 303 | } else if (message?.audio) { |
| 304 | placeholder = "[音频]"; |
| 305 | } else if (message?.sticker) { |
| 306 | placeholder = "[贴纸]"; |
| 307 | } else if (message?.document) { |
| 308 | placeholder = describeDocumentMessage(message); |
| 309 | } else if (message?.poll) { |
| 310 | placeholder = "[投票]"; |
| 311 | } else if (message?.contact) { |
| 312 | placeholder = "[联系人]"; |
| 313 | } else if (message?.location || message?.venue) { |
| 314 | placeholder = "[位置]"; |
| 315 | } else if (message?.media) { |
| 316 | placeholder = "[媒体消息]"; |
| 317 | } |
| 318 | |
| 319 | if (rawText && placeholder) return `${placeholder} ${rawText}`; |
| 320 | if (rawText) return rawText; |
| 321 | if (placeholder) return placeholder; |
| 322 | return "[空消息]"; |
| 323 | } |
| 324 | |
| 325 | function compactMessageText(text: string): string { |
| 326 | const singleLine = text |
| 327 | .replace(/\s*\r?\n\s*/g, " / ") |
| 328 | .replace(/\s+/g, " ") |
| 329 | .trim(); |
| 330 | if (singleLine.length <= MAX_TEXT_LENGTH) return singleLine || "[空消息]"; |
| 331 | return `${singleLine.slice(0, MAX_TEXT_LENGTH)}...`; |
| 332 | } |
| 333 |
no test coverage detected