Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            var threadActorDispatcher = new ThreadActorDispatcher();
            IQQClient client = null;

start:
            Console.Write("请输入QQ号:");
            var username = Console.ReadLine();
            Console.Write("请输入QQ密码:");
            var password = Console.ReadLine();
            client = new WebQQClient(username, password, handler, threadActorDispatcher);


            //测试同步模式登录
            var future = client.Login(QQStatus.ONLINE, null);
            Console.WriteLine(client.Account.Username + "-登录中......");

            var Event = future.WaitFinalEvent();
            if (Event.Type == QQActionEventType.EVT_OK)
            {
                Console.WriteLine(client.Account.Username + "-登录成功!!!!");

                var getUserInfoEvent = client.GetUserInfo(client.Account, null).WaitFinalEvent();

                if (getUserInfoEvent.Type == QQActionEventType.EVT_OK)
                {
                    Console.WriteLine(client.Account.QQ + "-用户信息:" + getUserInfoEvent.Target);


                    client.GetBuddyList(null).WaitFinalEvent();
                    Console.WriteLine(client.Account.QQ + "-Buddy count: " + client.GetBuddyList().Count);

                    foreach (var buddy in client.GetBuddyList())
                    {
                        var f = client.GetUserQQ(buddy, null);
                        var e = f.WaitFinalEvent();
                        var name = string.IsNullOrEmpty(buddy.MarkName) ? buddy.Nickname : buddy.MarkName;
                        Console.WriteLine("{0}, {1}", buddy.QQ, name);
                    }
                }
                //所有的逻辑完了后,启动消息轮询
                client.BeginPollMsg();
            }
            else if (Event.Type == QQActionEventType.EVT_ERROR)
            {
                var ex = (QQException)Event.Target;
                Console.WriteLine(ex.Message);
                client.Destroy();
                goto start;
            }
            else
            {
                Console.WriteLine(client.Account.Username + "-登录失败");
                client.Destroy();
                goto start;
            }

            Console.WriteLine("按任意键退出");
            Console.ReadLine();
        }
Ejemplo n.º 2
0
        private static async Task TestQQ()
        {
            var client = new WebQQClient(m => new QQConsoleLogger(m, LogLevel.Debug), _qqListener);

            if ((await client.Login()).IsOk())
            {
                client.BeginPoll();
            }
        }
Ejemplo n.º 3
0
        public static void Main(string[] args)
        {
#if NETCORE
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
#endif
            // 获取二维码
            var qq = new WebQQClient(Listener);
            qq.Login().Wait();

            Console.Read();
        }
Ejemplo n.º 4
0
        public static void Main(string[] args)
        {
#if NETCORE
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
#endif

            var client = new WebQQClient(m => new QQConsoleLogger(m, LogLevel.Debug), Listener);
            client.Login().Wait();
            client.BeginPoll();
            Console.Read();
        }
Ejemplo n.º 5
0
        public static void Main2(string[] args)
        {
            var       threadActorDispatcher = new SimpleActorDispatcher();
            IQQClient client = null;

start:
            Console.Write("请输入QQ号:");
            var username = Console.ReadLine();

            Console.Write("请输入QQ密码:");
            var password = Console.ReadLine();

            client = new WebQQClient(username, password, Listener, threadActorDispatcher);


            //测试同步模式登录
            var future = client.Login(QQStatus.ONLINE, null);

            client.Logger.LogInformation(client.Account.Username + "-登录中......");

            var Event = future.WaitFinalEvent();

            if (Event.Type == QQActionEventType.EvtOK)
            {
                client.Logger.LogInformation(client.Account.Username + "-登录成功!!!!");

                var getUserInfoEvent = client.GetUserInfo(client.Account, null).WaitFinalEvent();

                if (getUserInfoEvent.Type == QQActionEventType.EvtOK)
                {
                    client.Logger.LogInformation(client.Account.QQ + "-用户信息:" + getUserInfoEvent.Target);


                    client.GetBuddyList(null).WaitFinalEvent();
                    client.Logger.LogInformation(client.Account.QQ + "-Buddy count: " + client.GetBuddyList().Count);

                    foreach (var buddy in client.GetBuddyList())
                    {
                        var f    = client.GetUserQQ(buddy, null);
                        var e    = f.WaitFinalEvent();
                        var name = string.IsNullOrEmpty(buddy.MarkName) ? buddy.Nickname : buddy.MarkName;
                        client.Logger.LogInformation($"{buddy.QQ}, {name}");
                    }
                }
                //所有的逻辑完了后,启动消息轮询
                client.BeginPollMsg();
            }
            else if (Event.Type == QQActionEventType.EvtError)
            {
                var ex = (QQException)Event.Target;
                client.Logger.LogInformation(ex.Message);
                client.Destroy();
                goto start;
            }
            else
            {
                client.Logger.LogInformation(client.Account.Username + "-登录失败");
                client.Destroy();
                goto start;
            }

            client.Logger.LogInformation("按任意键退出");
            Console.ReadLine();
        }