/** * <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)); }
/// <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); } }