Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }