Ejemplo n.º 1
0
        /// <summary>
        /// 处理朋友的消息.
        /// </summary>
        /// <param name="qq"></param>
        /// <param name="data"></param>
        void DealFriend(string qq, FriendMessageData data)
        {
            try
            {
                if (QQMangers.FriendList.ContainsKey(qq))
                {
                    FriendCollection c = QQMangers.FriendList[qq];
                    Friend           f = c.FindByUin(data.FromUin);
                    string           qqnumber;
                    if (f != null)
                    {
                        qqnumber = f.QQNumber;
                        //闪动 qq

                        //转换文本.
                        StringBuilder sb = new StringBuilder();
                        foreach (var item in data.Content)
                        {
                            sb.Append(item);
                        }
                        string text = sb.ToString();
                        //
                        listBoxNewMessage.QueueInvoke <ChatMessage>((item) => MessageIn(item),
                                                                    new ChatMessage()
                        {
                            Title = "{1}({0})".FormatWith(qqnumber, f.NikeName), Text = text, Friend = f, Uin = qq
                        });
                        text = "{3}({2}) {1}\r\n{0}".FormatWith(text, DateTime.Now.ToString(), qqnumber, f.NikeName);
                        if (_CurrentQQ == qq && _CurrentFriend.Uin == data.FromUin)
                        {
                            textMessage.QueueInvoke <string>((item) =>
                            {
                                textMessage.AppendText(item);
                                textMessage.ScrollToCaret();
                            }, text);

                            if (_IsHistoryFriend)
                            {
                                richMessageHistory.QueueInvoke <string>((item) =>
                                {
                                    richMessageHistory.AppendText(item);
                                }, text);
                            }
                        }


                        _MsgRecord.Add(qq, qqnumber, text);
                    }
                }
            }
            catch (Exception ex)
            {
                Loger.WriteLog(ex);
            }
        }
Ejemplo n.º 2
0
        public void GetFriendMessageTest()
        {
            string[]          array    = null;
            int               index    = 0;
            FriendMessageData expected = null;
            FriendMessageData actual;

            actual = QQMessageEventArgs_Accessor.GetFriendMessage(array, index);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("验证此测试方法的正确性。");
        }
Ejemplo n.º 3
0
 private void PostUI(FriendMessageData data, bool topPosition, bool forceScroll)
 {
     if (data.message.StartsWith("[STAMP]"))
     {
         string message = data.message;
         message = message.Replace("[STAMP]", string.Empty);
         PostUIStamp(data.fromUserId, int.Parse(message), topPosition, forceScroll);
     }
     else
     {
         PostUIMessage(data.fromUserId, data.message, topPosition, forceScroll);
     }
 }
Ejemplo n.º 4
0
 private void AddMessageDetailList(List <FriendMessageData> addMessageList)
 {
     addMessageList.ForEach(delegate(FriendMessageData message)
     {
         FriendManager friendManager         = this;
         FriendMessageData friendMessageData = messageDetailList.Find((FriendMessageData m) => m.id == message.id);
         if (friendMessageData == null)
         {
             messageDetailList.Add(message);
         }
     });
     messageDetailList.Sort((FriendMessageData l, FriendMessageData r) => l.lid.CompareTo(r.lid));
 }
Ejemplo n.º 5
0
        private static FriendMessageData GetFriendMessage(JSONObject obj)
        {
            FriendMessageData data = new FriendMessageData();

            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");
            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]));
                    }
                    //JSONArray font = item as JSONArray;
                    //foreach (var sitem in font)
                    //{
                    //    if(sitem is JSONObject )
                    //    {
                    //        JSONObject temp = sitem as JSONObject;

                    //        data.Color = Tool.GetColor(temp.GetString("color"));

                    //    }
                    //}
                }
            }



            return(data);
        }
Ejemplo n.º 6
0
        private static FriendMessageData GetFriendMessage(string[] array, int index)
        {
            string            item  = string.Empty;
            FriendMessageData value = new FriendMessageData();
            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;

                    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);
        }
Ejemplo n.º 7
0
 private void Update()
 {
     //IL_0017: Unknown result type (might be due to invalid IL or missing references)
     //IL_001c: Unknown result type (might be due to invalid IL or missing references)
     //IL_0030: Unknown result type (might be due to invalid IL or missing references)
     //IL_0035: Unknown result type (might be due to invalid IL or missing references)
     //IL_0045: Unknown result type (might be due to invalid IL or missing references)
     //IL_004a: Unknown result type (might be due to invalid IL or missing references)
     //IL_005f: Unknown result type (might be due to invalid IL or missing references)
     //IL_0064: Unknown result type (might be due to invalid IL or missing references)
     //IL_0078: Unknown result type (might be due to invalid IL or missing references)
     //IL_007d: Unknown result type (might be due to invalid IL or missing references)
     //IL_009a: Unknown result type (might be due to invalid IL or missing references)
     //IL_009f: Unknown result type (might be due to invalid IL or missing references)
     //IL_00aa: Unknown result type (might be due to invalid IL or missing references)
     //IL_00af: Unknown result type (might be due to invalid IL or missing references)
     if (base.isInitialized)
     {
         Vector4 baseClipRegion = ScrollView.panel.baseClipRegion;
         float   w = baseClipRegion.w;
         Vector4 baseClipRegion2 = ScrollView.panel.baseClipRegion;
         float   num             = w - baseClipRegion2.y;
         Vector3 localPosition   = DragScrollTrans.get_localPosition();
         float   num2            = num + localPosition.y;
         Vector4 finalClipRegion = ScrollView.panel.finalClipRegion;
         float   w2                 = finalClipRegion.w;
         Vector2 clipOffset         = ScrollView.panel.clipOffset;
         float   num3               = num2 - (w2 + clipOffset.y);
         object  dragScrollCollider = (object)DragScrollCollider;
         Vector4 baseClipRegion3    = ScrollView.panel.baseClipRegion;
         dragScrollCollider.set_center(Vector2.op_Implicit(new Vector2(baseClipRegion3.x, 0f - num3)));
         interval += Time.get_deltaTime();
         if (IntervalSendGetNoRead <= interval)
         {
             interval = 0f;
             DispatchEvent("SEND_GET_NOREAD_MESSAGE", null);
         }
         List <FriendMessageData> messageDetailList = MonoBehaviourSingleton <FriendManager> .I.messageDetailList;
         if (messageDetailList.Count > postMessageList.Count)
         {
             HashSet <FriendMessageData> hashSet = new HashSet <FriendMessageData>(messageDetailList);
             hashSet.ExceptWith(postMessageList);
             FriendMessageData[] array = new FriendMessageData[hashSet.Count];
             hashSet.CopyTo(array);
             long num4 = 0L;
             if (0 < postMessageList.Count)
             {
                 num4 = postMessageList[0].lid;
             }
             for (int num5 = array.Length - 1; num5 >= 0; num5--)
             {
                 if (num4 > array[0].lid)
                 {
                     messageQueue.Enqueue(new PostMessageData(array[num5], true, false));
                 }
             }
             for (int i = 0; i < array.Length; i++)
             {
                 if (num4 <= array[0].lid)
                 {
                     bool forceScroll = i == array.Length - 1;
                     messageQueue.Enqueue(new PostMessageData(array[i], false, forceScroll));
                 }
             }
             postMessageList.AddRange(array);
             postMessageList.Sort((FriendMessageData l, FriendMessageData r) => l.lid.CompareTo(r.lid));
         }
         if (0 < messageQueue.Count)
         {
             PostMessageData postMessageData = messageQueue.Dequeue();
             PostUI(postMessageData.message, postMessageData.topPosition, postMessageData.forceScroll);
             if (0 > loadedPage && messageQueue.Count == 0)
             {
                 loadedPage = 0;
             }
         }
     }
 }
Ejemplo n.º 8
0
 public PostMessageData(FriendMessageData _message, bool _topPosition, bool _forceScroll)
 {
     message     = _message;
     topPosition = _topPosition;
     forceScroll = _forceScroll;
 }
Ejemplo n.º 9
0
        public bool CheckMessageOnEmergencyFaktor(FriendMessageData messageModel)
        {
            var stopWords = new GetStopWordsQueryHandler(new DataBaseContext()).Handle(new GetStopWordsQuery());

            return(stopWords.Any(data => messageModel.Message.Contains(data.Name)));
        }