Пример #1
0
        static async Task TestAsync()
        {
            Twitter tw = new Twitter();

            tw.Proxies.Add(new Core.RequestProxy("127.0.0.1", 1080));
            //Notice: Online user agent are not work now!!!
            await tw.InitAsync();

            var testUsers = new List <string>()
            {
                "realDonaldTrump", "BreitbartNews", "taylorswift13"
            };

            foreach (var acc in testUsers)
            {
                //-------------------------------Profile-------------------------------------------------------
                DebugSettings.LogInfo("Get User Profile", $"===================={acc}=====================");
                var user = await tw.GetUserProfileAsync(acc);

                File.AppendAllLines(Path.Combine(CacheProfileDir, $"{acc}-profile.json"), new[] { user.ToString() });

                DebugSettings.LogInfo("User Profile", $"{Environment.NewLine}{user}");

                //-------------------------------Tweets------------------------------------------------------ -

                DebugSettings.LogInfo("Get User Tweets", $"===================={acc}=====================");
                var pageModel = await tw.GetUserTweetsAsync(new TwitterOption()
                {
                    UserName = acc, Since = new DateTime(2020, 5, 1, 0, 0, 0)
                }, -1);

                File.AppendAllLines(Path.Combine(CacheTweetDir, $"{acc}-tweet.json"), new[] { pageModel.ToString() });
                DebugSettings.LogInfo("User Tweet", $"{Environment.NewLine}{pageModel}");
                var nextPage = pageModel;
                while (true)
                {
                    if (nextPage == null)
                    {
                        break;
                    }
                    if (!nextPage.HasNext)
                    {
                        break;
                    }
                    nextPage = await tw.GetUserTweetsAsync(nextPage.Options, nextPage.NextPageParams);

                    File.AppendAllLines(Path.Combine(CacheTweetDir, $"{acc}-tweet.json"), new[] { nextPage.ToString() });
                    DebugSettings.LogInfo("User Tweet", $"{Environment.NewLine}{nextPage}");
                    await Task.Delay(3);
                }


                //-------------------------------Following-------------------------------------------------------
                DebugSettings.LogInfo("Get Following", $"===================={acc}=====================");
                var followingPage = await tw.GetFollowingAsync(acc);

                DebugSettings.LogInfo("User Following", $"{Environment.NewLine}{followingPage}");
                File.AppendAllLines(Path.Combine(CacheFollowingDir, $"{acc}-following.json"), new[] { followingPage.ToString() });
                var nextFollowingPage = followingPage;
                while (true)
                {
                    if (nextFollowingPage == null)
                    {
                        break;
                    }
                    if (!nextFollowingPage.HasNext)
                    {
                        break;
                    }
                    nextFollowingPage = await tw.GetFollowingAsync(acc, nextFollowingPage.NextCursor);

                    File.AppendAllLines(Path.Combine(CacheFollowingDir, $"{acc}-following.json"), new[] { nextFollowingPage.ToString() });
                    DebugSettings.LogInfo("User Following", $"{Environment.NewLine}{nextFollowingPage}");
                    await Task.Delay(3);
                }

                //-------------------------------Follower-------------------------------------------------------
                DebugSettings.LogInfo("Get Follower", $"===================={acc}=====================");
                var followerPage = await tw.GetFollowerAsync(acc);

                File.AppendAllLines(Path.Combine(CacheFollowingDir, $"{acc}-follower.json"), new[] { followerPage.ToString() });
                DebugSettings.LogInfo("User Follower", $"{Environment.NewLine}{followerPage}");
                var nextFollowerPage = followerPage;
                while (true)
                {
                    if (nextFollowerPage == null)
                    {
                        break;
                    }
                    if (!nextFollowerPage.HasNext)
                    {
                        break;
                    }
                    nextFollowerPage = await tw.GetFollowerAsync(acc, nextFollowerPage.NextCursor);

                    File.AppendAllLines(Path.Combine(CacheFollowingDir, $"{acc}-follower.json"), new[] { nextFollowerPage.ToString() });
                    DebugSettings.LogInfo("User Follower", $"{Environment.NewLine}{nextFollowerPage}");
                    await Task.Delay(3);
                }
            }
        }