(text: string)
| 330 | if (singleLine.length <= MAX_TEXT_LENGTH) return singleLine || "[空消息]"; |
| 331 | return `${singleLine.slice(0, MAX_TEXT_LENGTH)}...`; |
| 332 | } |
| 333 | |
| 334 | async function matchesManualSelector( |
| 335 | message: any, |
| 336 | selector: Extract<ResolvedSourceUser, { manualMode: true }>, |
| 337 | ): Promise<boolean> { |
| 338 | if (selector.manualUserId) { |
| 339 | return normalizeId(message?.senderId) === selector.manualUserId; |
| 340 | } |
| 341 | |
| 342 | const expectedUsername = selector.manualUsername; |
no outgoing calls
no test coverage detected