private static GroupMessageData GetGroupMessage(JSONObject obj) { GroupMessageData data = new GroupMessageData(); data.MsgID = obj.GetString("msg_id"); data.MsgID2 = obj.GetString("msg_id2"); data.MsgType = int.Parse(obj.GetString("msg_type")); data.ReplyIP = obj.GetString("reply_ip"); data.FromUin = obj.GetString("from_uin"); data.ToUin = obj.GetString("to_uin"); data.SendUin = obj.GetString("send_uin"); data.Seq = obj.GetString("seq"); data.Time = obj.GetString("time"); data.InfoSeq = obj.GetString("info_seq"); data.GroupCode = obj.GetString("group_code"); JSONArray content = obj.GetJSONArray("content"); foreach (var item in content) { if (item is string) { string text = item.ToString(); if (text.IndexOf("\\u") > -1) { text = Encode.DeUnicode(text); } data.Content.Add(text); } else if (item is JSONArray) { JSONArray array = item as JSONArray; string flag = array[0].ToString(); if (flag == "face") { data.Content.Add(string.Format("[face{0}]", array[1])); } else if (flag == "font") { } } } return(data); }
private static GroupMessageData GetGroupMessage(string[] array, int index) { string item = string.Empty; GroupMessageData value = new GroupMessageData(); string name = string.Empty; int size = 10; string style = string.Empty; for (int i = index; i < array.Length; i++) { item = array[i]; string[] a = item.Split(':'); if (a.Length > 1) { switch (a[0]) { case "value": if (a.Length > 2) { value.MsgID = a[2]; } break; case "from_uin": value.FromUin = a[1]; break; case "msg_id2": value.MsgID2 = a[1]; break; case "msg_type": value.MsgType = int.Parse(a[1]); break; case "reply_ip": value.ReplyIP = a[1]; break; case "time": value.Time = a[1]; break; case "to_uin": value.ToUin = a[1]; break; case "color": value.Color = Tool.GetColor(a[1]); break; case "name": name = Encode.DeUnicode(a[1]); break; case "size": size = int.Parse(a[1]); break; case "style": style = string.Format("{0}{1}{2}", a[1], array[i + 1], array[i + 2]); i = i + 2; break; case "info_seq": value.InfoSeq = a[1]; break; case "seq": value.Seq = a[1]; break; case "send_uin": value.SendUin = a[1]; break; case "group_code": value.GroupCode = a[1]; break; default: break; } } else { //Debug.WriteLine(item); if (item.IndexOf("\\u") > -1) { string t = Encode.DeUnicode(item); value.Content.Add(t.Replace("r", "\r\n")); } else { value.Content.Add(item); } } } return(value); }