private static ContentInfo ContentParser(MessageTypeEnum type, string messageInfo, string messageId, string targetId) { var result = JsonConvert.DeserializeObject<ContentInfo>(messageInfo); result.MessageType = type; result.Id = messageId; if (type != MessageTypeEnum.TxtMsg) { if (type == MessageTypeEnum.ContactNtf) { result.content += result.message; } else if (type == MessageTypeEnum.InfoNtf) { result.content += result.message; } else if (type == MessageTypeEnum.ProfileNtf) { } else if (type == MessageTypeEnum.CmdNtf) { } else if (type == MessageTypeEnum.CmdMsg) { } else if (type == MessageTypeEnum.DizNtf) { result.content = type.GetDescription(); } else if (type == MessageTypeEnum.LBSMsg) { result.content = "[地理位置]"; } } if (type == MessageTypeEnum.VcMsg) { var localFile = String.Format(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Temp", targetId + "-" + messageId + ".wav")); if (!File.Exists(localFile)) { var tempAmrFile = String.Format(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Temp", targetId + "-" + messageId + ".amr")); Byte[] wavBytes = Convert.FromBase64String(result.content); File.WriteAllBytes(tempAmrFile, wavBytes); Rcsdk.DecodeAmrToWav(tempAmrFile, localFile); } result.extra = localFile; } if (type == MessageTypeEnum.ImgMsg) { var image = System.Drawing.Image.FromStream(new MemoryStream(System.Convert.FromBase64String(result.content))); var localFile = String.Format(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Temp", targetId + "-" + messageId + ".jpg")); if (!File.Exists(localFile)) { image.Save(localFile, System.Drawing.Imaging.ImageFormat.Jpeg); } result.thumImgPath = localFile; } if (type == MessageTypeEnum.TxtMsg) { result.content = EncryptHelper.Decrypt(result.content); // result.content = Regex.Replace(result.content, @"\p{Cs}", "[表情]"); } if (type == MessageTypeEnum.file) { //ToDO:如果为文件,则保存 } return result; }
private static ContentInfo ConversationContentParser(MessageTypeEnum type, string messageInfo) { var result = JsonConvert.DeserializeObject<ContentInfo>(messageInfo); result.MessageType = type; if (type != MessageTypeEnum.TxtMsg) { result.content = type.GetDescription(); if (type == MessageTypeEnum.ContactNtf) { result.content += result.message; } else if (type == MessageTypeEnum.InfoNtf) { result.content += result.message; } else if (type == MessageTypeEnum.ProfileNtf) { } else if (type == MessageTypeEnum.CmdNtf) { } else if (type == MessageTypeEnum.CmdMsg) { } } else { result.content = EncryptHelper.Decrypt(result.content); } return result; }