更新云信相关代码

This commit is contained in:
XiuYun CHEN
2025-07-10 08:57:32 +08:00
parent a297e0452f
commit 5954f51701
523 changed files with 61546 additions and 1488 deletions
@@ -0,0 +1,63 @@
/*
* Copyright (c) 2022 NetEase, Inc. All rights reserved.
* Use of this source code is governed by a MIT license that can be
* found in the LICENSE file.
*
*/
import { AitSegment } from './AitSegment'
import { Type } from 'class-transformer'
import 'reflect-metadata'
export class AitMessage {
/**
* 账号
*/
accountId: string = ""
//@的文本
text: string
//@的信息存储,一个文案可能被@多次
@Type(() => AitSegment)
segments: AitSegment[] = []
constructor(text: string, accountId: string) {
this.text = text
this.accountId = accountId
}
addSegment(start: number, end: number, broken?: boolean) {
let segment: AitSegment = {
start: start,
end: end,
broken: broken ?? false
}
this.segments.push(...[segment])
}
removeSegment(start: number, end: number) {
let index = this.segments.findIndex(e => e.start === start && e.end === end)
if (index >= 0) {
this.segments.splice(index, 1)
}
}
valid(): boolean {
if (this.segments.length < 0) {
return false
}
for (let segment of this.segments) {
if (!segment.broken) {
return true
}
}
return false
}
segmentToMap(segment: AitSegment): Map<string, number | boolean> {
let map = new Map<string, number | boolean>()
map.set('start', segment.start)
map.set('end', segment.end)
map.set('broken', segment.broken ?? false)
return map
}
}