()
| 154 | } |
| 155 | |
| 156 | func (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 | }, |
nothing calls this directly
no test coverage detected