コード例 #1
0
        public bool AddQQFriends(FriendViewModel model)
        {
            var t   = DateTime.Now;
            var res = m_MainDbContext.QQFriendsSet.Where(e => !e.IsD && e.Owner == model.Owner && e.QQNum == model.Qq)
                      .FirstOrDefault();

            if (res != null)
            {
                res.Nick       = model.Nick;
                res.UpdateTime = t;
                m_MainDbContext.QQFriendsSet.AddOrUpdate(res);
            }
            else
            {
                var target = new QQFriend()
                {
                    CreateTime = t,
                    UpdateTime = t,
                    IsD        = false,
                    Nick       = model.Nick,
                    Owner      = model.Owner,
                    QQNum      = model.Qq
                };
                m_MainDbContext.QQFriendsSet.Add(target);
            }

            return(m_MainDbContext.SaveChanges() > 0);
        }
コード例 #2
0
        internal void ProcessLoginGetListReply(LoginGetListReplyPacket loginGetListReplyPacket, LoginGetListPacket loginGetListPacket)
        {
            QQEventArgs <LoginGetListReplyPacket, LoginGetListPacket> e = new QQEventArgs <LoginGetListReplyPacket, LoginGetListPacket>(QQClient, loginGetListReplyPacket, loginGetListPacket);

            foreach (QQ.Entities.QQBasicInfo qq in loginGetListReplyPacket.QQList)
            {
                if (!QQClient.QQUser.QQList.ContainsKey(qq.QQ))
                {
                    QQClient.QQUser.QQList.Add(qq.QQ, qq);
                }
            }
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("本次得到QQ " + loginGetListReplyPacket.QQList.Count + " 个。");
#if DEBUG
            foreach (QQ.Entities.QQBasicInfo qq in loginGetListReplyPacket.QQList)
            {
                sb.AppendLine(string.Format("\t\tQQ:{0} type:{1}   group: {2} ", qq.QQ, qq.Type, qq.GroupId));
            }
#endif
            QQClient.LogManager.Log(sb.ToString());
            //应该将QQ好友,QQ群存入存入QQuser对象
            if (!e.InPacket.Finished)//好友没有下载完,继续下载
            {
                //LoginGetList(e.InPacket.NextPos);

                LoginGetList(++lisPackets);
            }
            else //好友下载完毕 触发事件
            {
                QQClient.LogManager.Log("获取全部好友完成!");
                //分到各自的列表组
                foreach (QQBasicInfo qq in QQClient.QQUser.QQList.Values)
                {
                    switch (qq.Type)
                    {
                    case QQType.Cluster:
                        ClusterInfo ClusterInfo = new ClusterInfo();
                        ClusterInfo.QQBasicInfo = qq;
                        QQClient.QQUser.ClusterList.Add(qq.QQ, ClusterInfo);
                        break;

                    case QQType.QQ:
                        QQFriend QQFriend = new QQFriend();
                        QQFriend.QQBasicInfo = qq;
                        QQClient.QQUser.Friends.Add(qq.QQ, QQFriend);
                        break;

                    default:
                        QQClient.LogManager.Log("unknown QQ.Type: 0x" + qq.Type.ToString("X") + " qq=" + qq.QQ.ToString() + " gid=0x" + qq.GroupId.ToString("X2"));
                        break;
                    }
                }
                OutPacket outPacket = new LoginSendInfoPacket(this.QQClient);
                QQClient.PacketManager.SendPacketAnyway(outPacket, QQPort.Main.Name);
            }
        }
コード例 #3
0
ファイル: QQFunc.cs プロジェクト: DavidSciMeow/MeowIOTBot
 /// <summary>
 /// 添加集方法
 /// <para>Set Insert Function</para>
 /// </summary>
 /// <param name="n">项目</param>
 /// <returns></returns>
 public bool Add(QQFriend n)
 {
     if (q.Exists((QQFriend k) => k.FriendUin == n.FriendUin))
     {
         return(false);
     }
     else
     {
         q.Add(n);
         return(true);
     }
 }
コード例 #4
0
        public QQFriend GetOrAddFriendByUin(long uin)
        {
            var f = FriendDic.GetOrDefault(uin);

            if (f == null)
            {
                f = new QQFriend()
                {
                    Uin = uin
                };
                AddFriend(f);
            }
            return(f);
        }
コード例 #5
0
 protected override void ParseBody(ByteBuffer buf)
 {
     // 当前好友列表位置
     Position = buf.GetUShort();
     Finished = Position == 0xFFFF;
     // 只要还有数据就继续读取下一个friend结构
     Friends = new List <QQFriend>();
     while (buf.HasRemaining())
     {
         QQFriend friend = new QQFriend();
         friend.Read(buf);
         Friends.Add(friend);
     }
 }
コード例 #6
0
 /// <summary>
 /// 处理得到群成员信息的回复包
 /// 2010/2/22 Veonax 修改
 ///     <remark>abu 2008-02-22 </remark>
 /// </summary>
 /// <param name="buf">The buf.</param>
 private void ParseGetMemberInfoReply(ByteBuffer buf)
 {
     if (ReplyCode == ReplyCode.OK)
     {
         ClusterId = buf.GetUInt();
         // 成员信息
         MemberInfos = new List <QQFriend>();
         while (buf.HasRemaining())
         {
             QQFriend friend = new QQFriend();
             friend.ReadFromCluster(buf); // 从群成员信息GetClusterMemberInfo包中读取相关信息
             MemberInfos.Add(friend);
         }
     }
 }
コード例 #7
0
 public void AddFriend(QQFriend friend)
 {
     if (CategoryDic.ContainsKey(friend.CategoryIndex))
     {
         CategoryDic[friend.CategoryIndex].AddFriend(friend);
     }
     else
     {
         AddCategory(new Category()
         {
             Index = friend.CategoryIndex
         });
         AddFriend(friend);
     }
     FriendDic[friend.Uin] = friend;
 }
コード例 #8
0
        protected override void ParseBody(ByteBuffer buf)
        {
#if DEBUG
            Client.LogManager.Log(ToString() + " " + Utils.Util.ToHex(buf.ToByteArray()));
#endif
            buf.Position += 10;
            // 当前好友列表位置
            Position      = buf.GetUShort();
            Finished      = Position == 0xFFFF;
            buf.Position += 5;
            // 只要还有数据就继续读取下一个friend结构
            Friends = new List <QQFriend>();
            while (buf.Position + 5 < buf.Length)
            {
                int      qq     = buf.GetInt();
                QQFriend friend = Client.QQUser.Friends.Get(qq);
                if (friend == null)
                {
                    friend = Client.QQUser.Friends.Add(qq);
                }
                friend.Read(buf);
                Friends.Add(friend);
            }
        }
コード例 #9
0
 static public void friend_getlist()
 {
     try
     {
         String   URL = Config.ROOT_URL + "friend_getlist";
         PostData nvc = new PostData();
         Func.putPassWord(nvc);
         //nvc.Add("order", "addtime");
         //nvc.Add("desc", "DESC");
         nvc.Add("start", "0");
         nvc.Add("count", "0");
         nvc.Add("tag", "qq");
         nvc.Add("tagval", "251197161");
         if (nvc != null)
         {
             string sttuas = Func.HttpPostData(URL, 10000, nvc);
             if (sttuas.Length > 10)
             {
                 MyJson.JsonNode_Array jsons = MyJson.Parse(sttuas) as MyJson.JsonNode_Array;
                 for (int i = 0; i < jsons.GetListCount(); i++)
                 {
                     MyJson.JsonNode_Object json = jsons.GetArrayItem(i) as MyJson.JsonNode_Object;
                     QQFriend info = new QQFriend();
                     info.qq      = json["qq"].AsString();
                     info.qqfri   = json["qqfri"].AsString();
                     info.addtime = Func.MyUrlDeCode(json["addtime"].AsString());
                     info.state   = Func.MyUrlDeCode(json["state"].AsString());
                     lsQQFriend.Add(info);
                 }
             }
         }
     }
     catch (Exception)
     {
     }
 }
コード例 #10
0
 public GetFriendLongNickAction(IQQContext context, QQFriend friend, ActionEventListener listener = null) : base(context, listener)
 {
     _friend = friend;
 }
コード例 #11
0
 /// <summary>
 ///     <remark>abu 2008-03-11 </remark>
 /// </summary>
 /// <param name="basicInfo">The basic info.</param>
 public FriendInfo(QQFriend basicInfo)
 {
     this.BasicInfo = basicInfo;
 }
コード例 #12
0
 public void AddFriend(QQFriend friend)
 {
     Friends[friend.Uin] = friend;
 }