MCPcopy Create free account
hub / github.com/LagrangeDev/LagrangeGo / BuildElement

Method BuildElement

message/build.go:156–235  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

154}
155
156func (e *ForwardMessage) BuildElement() []*message.Elem {
157 fileID := utils.NewUUID()
158 extra := MultiMsgLightAppExtra{
159 FileName: fileID,
160 Sum: len(e.Nodes),
161 }
162 extraData, err := json.Marshal(&extra)
163 if err != nil {
164 return nil
165 }
166
167 var news []News
168 if len(e.Nodes) != 0 {
169 news = make([]News, len(e.Nodes))
170 for i, node := range e.Nodes {
171 news[i] = News{Text: fmt.Sprintf("%s: %s", node.SenderName, ToReadableString(node.Message))}
172 }
173 } else {
174 news = []News{{Text: "转发消息"}}
175 }
176
177 var metaSource string
178 if len(e.Nodes) > 0 {
179 isSenderNameExist := make(map[string]bool)
180 isContainSelf := false
181 isCount := 0
182 for _, v := range e.Nodes {
183 if v.SenderID == e.SelfID && e.SelfID > 0 {
184 isContainSelf = true
185 }
186 if _, ok := isSenderNameExist[v.SenderName]; !ok {
187 isCount++
188 isSenderNameExist[v.SenderName] = true
189 if metaSource == "" {
190 metaSource = v.SenderName
191 } else {
192 metaSource += fmt.Sprintf("和%s", v.SenderName)
193 }
194 }
195 }
196 if !isContainSelf || (isCount > 2 && isCount < 1) {
197 metaSource = "群聊的聊天记录"
198 } else {
199 metaSource += "的聊天记录"
200 }
201 } else {
202 metaSource = "聊天记录"
203 }
204
205 content := MultiMsgLightApp{
206 App: "com.tencent.multimsg",
207 Config: Config{
208 Autosize: 1,
209 Forward: 1,
210 Round: 1,
211 Type: "normal",
212 Width: 300,
213 },

Callers

nothing calls this directly

Calls 6

NewUUIDFunction · 0.92
B2SFunction · 0.92
ToReadableStringFunction · 0.85
NewLightAppFunction · 0.85
BuildElementMethod · 0.65
MarshalMethod · 0.45

Tested by

no test coverage detected