Example #1
0
        /**
         * <p>
         * processBuddyMsg.
         * </p>
         *
         * @param pollData
         *            a {@link org.json.JSONObject} object.
         * @throws org.json.JSONException
         *             if any.
         * @throws iqq.im.QQException
         *             if any.
         * @return a {@link iqq.im.event.QQNotifyEvent} object.
         */
        public QQNotifyEvent processBuddyMsg(JSONObject pollData)
        {
            QQStore store = getContext().getStore();

            long  fromUin = pollData.getLong("from_uin");
            QQMsg msg     = new QQMsg();

            msg.setId(pollData.getLong("msg_id"));
            msg.setId2(pollData.getLong("msg_id2"));
            msg.parseContentList(pollData.getJSONArray("content").ToString());
            msg.setType(QQMsg.Type.BUDDY_MSG);
            msg.setTo(getContext().getAccount());
            msg.setFrom(store.getBuddyByUin(fromUin));
            msg.setDate(new DateTime(pollData.getLong("time") * 1000));
            if (msg.getFrom() == null)
            {
                QQUser member = store.getStrangerByUin(fromUin);         // 搜索陌生人列表
                if (member == null)
                {
                    member = new QQHalfStranger();
                    member.setUin(fromUin);
                    store.addStranger((QQStranger)member);
                }
                msg.setFrom(member);
            }
            return(new QQNotifyEvent(QQNotifyEvent.Type.CHAT_MSG, msg));
        }
Example #2
0
        /// <summary>
        /// 处理好友信息
        /// </summary>
        /// <param name="pollData"></param>
        /// <returns></returns>
        public QQNotifyEvent ProcessBuddyMsg(JObject pollData)
        {
            try
            {
                var store = Context.Store;
                var fromUin = pollData["from_uin"].ToObject<long>();
                var msg = new QQMsg
                {
                    Id = pollData["msg_id"].ToObject<long>(),
                    Id2 = pollData["msg_id2"].ToObject<long>()
                };
                msg.ParseContentList(JsonConvert.SerializeObject(pollData["content"]));
                msg.Type = QQMsgType.BUDDY_MSG;
                msg.To = Context.Account;
                msg.From = store.GetBuddyByUin(fromUin);
                var ticks = pollData["time"].ToObject<long>() * 1000;
                msg.Date = ticks > DateTime.MaxValue.Ticks ? DateTime.Now : new DateTime(ticks);
                if (msg.From == null)
                {
                    QQUser member = store.GetStrangerByUin(fromUin); // 搜索陌生人列表
                    if (member == null)
                    {
                        member = new QQHalfStranger { Uin = fromUin };
                        store.AddStranger((QQStranger)member);

                        // 获取用户信息
                        var userModule = Context.GetModule<UserModule>(QQModuleType.USER);
                        userModule.GetUserInfo(member, null);
                    }
                    msg.From = member;
                }
                return new QQNotifyEvent(QQNotifyEventType.CHAT_MSG, msg);
            }
            catch (Exception ex)
            {
                return new QQNotifyEvent(QQNotifyEventType.NET_ERROR, ex);
            }
        }