예제 #1
0
        private static void Main(string[] args)
        {
            ConsoleOutput.PrintMessage("Welcome to BoxKite.Twitter Console");
            ConsoleOutput.PrintMessage("(control-c ends)");
            System.Console.CancelKeyPress += cancelStreamHandler;

            var twittercredentials = ManageTwitterCredentials.GetTwitterCredentialsFromFile();

            if (twittercredentials == null)
            {
                // there are no Credentials on file, so create a new set
                // first, get the Twitter Client (also known as Consumer) Key and Secret from my service
                var twitterClientKeys = ClientKeyManager.GetTwitterClientKeys().Result;

                // make a new connection
                twitterConnection = new TwitterConnection(twitterClientKeys.Item1, twitterClientKeys.Item2);

                // PIN based authentication
                var oauth = twitterConnection.BeginUserAuthentication().Result;

                // if the response is null, something is wrong with the initial request to OAuth
                if (!string.IsNullOrWhiteSpace(oauth))
                {
                    ConsoleOutput.PrintMessage("Pin: ");
                    var pin = System.Console.ReadLine();
                    twittercredentials = twitterConnection.CompleteUserAuthentication(pin, oauth).Result;

                    ManageTwitterCredentials.SaveTwitterCredentialsToFile(twittercredentials);
                }
                else
                {
                    ConsoleOutput.PrintError("Cannot OAuth with Twitter");
                }
            }


            if (twittercredentials != null)
            {
                twitterConnection = new TwitterConnection(twittercredentials);

                twitterConnection.StartUserStreaming();

                ConsoleOutput.PrintMessage(twitterConnection.TwitterCredentials.ScreenName +
                                           " is authorised to use BoxKite.Twitter.");

                var usersession        = twitterConnection.UserSession;
                var userstream         = twitterConnection.UserStream;
                var applicationsession = twitterConnection.ApplicationSession;
                var searchstream       = twitterConnection.SearchStream;

                // userstream.Tweets.Subscribe( t => ConsoleOutput.PrintTweet(t));

                //userstream.Events.Subscribe(e => ConsoleOutput.PrintEvent(e, ConsoleColor.Yellow));
                //userstream.DirectMessages.Subscribe(C:\Users\nhodge\Documents\GitHub\BoxKite.Twitter\src\BoxKite.Twitter\SearchStream.cs
                //    d => ConsoleOutput.PrintDirect(d, ConsoleColor.Magenta, ConsoleColor.Black));
                //userstream.Start();

                //while (userstream.IsActive)
                //{
                //    Thread.Sleep(TimeSpan.FromSeconds(0.5));
                //}



                /*var x = session.SendTweet("d realnickhodge testing & ampersands");
                 *
                 *      if (x.IsFaulted)
                 *      {
                 *          ConsoleOutput.PrintMessage("bugger");
                 *      }
                 *
                 */



                //var locations = new List<string> { "150.700493", "-34.081953", "151.284828", "-33.593316" };
                // var locations = new List<string> { "-180", "-90", "180", "90" };
                // var track = new List<string> { "mh370" };


                twitterConnection.TimeLine.Subscribe(t =>
                {
                    ConsoleOutput.PrintTweet(t, ConsoleColor.Green);
                });
                twitterConnection.Mentions.Subscribe(
                    t => ConsoleOutput.PrintTweet(t, ConsoleColor.White, ConsoleColor.DarkGray));

                //twitterConnection.SearchTimeLine.Subscribe(t => { ConsoleOutput.PrintTweet(t, ConsoleColor.Cyan); });

                //twitterConnection.StartSearchStreaming("angeles");

                while (true)
                {
                    Thread.Sleep(TimeSpan.FromSeconds(0.5));
                }

                /*
                 * twitterConnection.StartSearch("mh370");
                 * var xx = session.GetUserProfile(screen_name:"nickhodgemsft").Result;
                 *
                 * if (xx.twitterFaulted)
                 * {
                 * PrintTwitterErrors(xx.twitterControlMessage);
                 * }
                 * else
                 * {
                 * ConsoleOutput.PrintMessage(xx.ToString());
                 * }
                 *
                 *
                 *
                 * var fileName = "sampleimage\\boxkite1500x500.png";
                 *
                 * if (File.Exists(fileName))
                 * {
                 * // var newImage = File.ReadAllBytes(fileName);
                 *
                 * var sr = FilesHelper.FromFile(fileName);
                 *
                 * // var x = session.SendTweetWithImage("Testing Image Upload. You can Ignore", Path.GetFileName(fileName),newImage).Result;
                 *
                 * using (var fs = new FileStream(sr, FileMode.Open, FileAccess.Read))
                 * {
                 *
                 *     var x = session.ChangeProfileBanner("sampleimage\\boxkite1500x500.png", fs).Result;
                 *
                 *     // var x = session.SendTweetWithImage("Maggies Rules", "maggie.jpg", fs).Result;
                 *
                 *     if (x.twitterFaulted)
                 *     {
                 *         PrintTwitterErrors(x.twitterControlMessage);
                 *     }
                 *     else
                 *     {
                 *         ConsoleOutput.PrintMessage("OK");
                 *     }
                 *
                 * }
                 *
                 * }
                 */
                /*
                 * mainTwitterAccount.TimeLine.Subscribe(t => ConsoleOutput.PrintTweet(t));
                 * mainTwitterAccount.Mentions.Subscribe(
                 *  t => ConsoleOutput.PrintTweet(t, ConsoleColor.White, ConsoleColor.DarkGray));
                 *
                 * while (true)
                 * {
                 *  Thread.Sleep(TimeSpan.FromSeconds(0.5));
                 * }
                 *
                 * Console.ConsoleOutput.PrintMessage("Event stream has stoppped.");
                 *
                 *       var locations = new List<string> { "-34.081953", "150.700493", "-33.593316", "151.284828" };
                 *          searchstream = session.StartSearchStream(locations: locations);
                 *          searchstream = session.StartSearchStream(track: "hazel");
                 *          searchstream.FoundTweets.Subscribe(t => ConsoleOutput.PrintTweet(t, ConsoleColor.Green));
                 *          searchstream.Start();
                 *
                 *          while (searchstream.IsActive)
                 *          {
                 *              Thread.Sleep(TimeSpan.FromMinutes(1));
                 *              var sr = new StreamSearchRequest();
                 *              sr.tracks.Add("xbox");
                 *              searchstream.SearchRequests.Publish(sr);
                 *          }
                 *
                 */


                /*
                 *      var x = session.GetMentions(count:100).Result;
                 *
                 *      foreach (var tweet in x)
                 *      {
                 *          ConsoleOutputPrintTweet(tweet);
                 *      }
                 *
                 *
                 *       session.GetFavourites(count: 10)
                 *          .Subscribe(t => ConsoleOutputPrintTweet(t, ConsoleColor.White, ConsoleColor.Black));
                 */
            }

            ConsoleOutput.PrintMessage("All Finished");
            System.Console.ReadLine();
        }
예제 #2
0
        public static void Main(string[] args)
        {
            ConsoleOutput.PrintMessage("BoxKite.Twitter Live Fire Tests (User Auth)");
            ConsoleOutput.PrintMessage("(control-c ends at anytime)");

            var twittercredentials = ManageTwitterCredentials.GetTwitterCredentialsFromFile();

            if (twittercredentials.Valid)
            {
                System.Console.CancelKeyPress += cancelStreamHandler;
                var session   = new UserSession(twittercredentials, new DesktopPlatformAdaptor());
                var checkUser = session.GetVerifyCredentials().Result;
                if (checkUser.OK)
                {
                    ConsoleOutput.PrintMessage(twittercredentials.ScreenName + " is authorised to use BoxKite.Twitter.");

                    // put the test series number you wish to run into the init of the array
                    // then in each test group, put the numbers of the tests you would like to run
                    // NOTE: some tests require a previous test to work successfully
                    // NOTE: some tests post/delete items. This *is* a live fire test!

                    var testSeriesToRun = new List <int> {
                        4
                    };

                    // Calls tested by Test Series
                    // series 1 => 10 (UserAccounts & Auth)
                    // series 2 => 1 (API Management)
                    // series 3 => 4 (Direct Messages)
                    // series 4 => 5 (Tweets)
                    // series 5 => 3 (Favourites)
                    // series 6 => 8 (Friends/Followers)
                    // series 7 => 6 (TimeLine)
                    // series 8 => 3 (Trends)
                    // series 9 => 2 (SuggestedUsers)
                    // series 10=> 7 (Lists)
                    // series 11=> 3 (Combos)
                    // =============
                    // TOTAL      52

                    // Test Series 1
                    if (testSeriesToRun.Contains(1))
                    {
                        var ualft       = new UserAccountLiveFireTests();
                        var testResult1 = ualft.DoUserAccountTest(session, new List <int> {
                            1, 2, 3, 4, 5, 6
                        }).Result;

                        if (testResult1)
                        {
                            ConsoleOutput.PrintMessage(String.Format("1.0 User Account Tests Status: {0}", testResult1),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("1.0 User Account Tests Status: {0}", testResult1),
                                                       ConsoleColor.Red);
                        }
                    }


                    // Test Series 2
                    if (testSeriesToRun.Contains(2))
                    {
                        var doit        = new ApiManagementLiveFireTests();
                        var testResult2 = doit.DoApiTest(session, new List <int> {
                            1
                        }).Result;

                        if (testResult2)
                        {
                            ConsoleOutput.PrintMessage(String.Format("2.0 API Management Tests Status: {0}", testResult2),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("2.0 API Management Tests Status: {0}", testResult2),
                                                       ConsoleColor.Red);
                        }
                    }

                    // Test Series 3
                    if (testSeriesToRun.Contains(3))
                    {
                        var dms         = new DirectMessagesLiveFireTests();
                        var testResult3 = dms.DoDMTest(session, new List <int> {
                            1, 2
                        }).Result;

                        if (testResult3)
                        {
                            ConsoleOutput.PrintMessage(String.Format("3.0 Direct Messages Tests Status: {0}", testResult3),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("3.0 Direct Messages Tests Status: {0}", testResult3),
                                                       ConsoleColor.Red);
                        }
                    }


                    // Test Series 4
                    if (testSeriesToRun.Contains(4))
                    {
                        var tws         = new TweetsLiveFireTests();
                        var testResult4 = tws.DoTweetTest(session, new List <int> {
                            5
                        }).Result;

                        if (testResult4)
                        {
                            ConsoleOutput.PrintMessage(String.Format("4.0 Tweet Tests Status: {0}", testResult4),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("4.0 Tweet Tests Status: {0}", testResult4),
                                                       ConsoleColor.Red);
                        }
                    }

                    // Test Series 5
                    if (testSeriesToRun.Contains(5))
                    {
                        var fvs         = new FavouritesLiveFireTests();
                        var testResult5 = fvs.DoFavouritesTest(session, new List <int> {
                            1, 2, 3
                        }).Result;

                        if (testResult5)
                        {
                            ConsoleOutput.PrintMessage(String.Format("5.0 Favourite Tests Status: {0}", testResult5),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("5.0 Favourite Tests Status: {0}", testResult5),
                                                       ConsoleColor.Red);
                        }
                    }


                    // Test Series 6
                    if (testSeriesToRun.Contains(6))
                    {
                        var ffvs        = new FriendsFollowersLiveFireTests();
                        var testResult6 = ffvs.DoFriendsFollowersTest(session, new List <int> {
                            4, 5
                        }).Result;

                        if (testResult6)
                        {
                            ConsoleOutput.PrintMessage(String.Format("6.0 FriendsFollowers Tests Status: {0}", testResult6),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("6.0 FriendsFollowers Tests Status: {0}", testResult6),
                                                       ConsoleColor.Red);
                        }
                    }

                    // Test Series 7
                    if (testSeriesToRun.Contains(7))
                    {
                        var tmln        = new TimelineLiveFireTests();
                        var testResult7 = tmln.DoTimelineTest(session, new List <int> {
                            6
                        }).Result;

                        if (testResult7)
                        {
                            ConsoleOutput.PrintMessage(String.Format("7.0 Timeline Tests Status: {0}", testResult7),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("7.0 Timeline Tests Status: {0}", testResult7),
                                                       ConsoleColor.Red);
                        }
                    }


                    // Test Series 8(also tests SearchFor in SearchExtensions)
                    if (testSeriesToRun.Contains(8))
                    {
                        var trln        = new TrendsLiveFireTests();
                        var testResult8 = trln.DoTrendsTest(session, new List <int> {
                            4, 5
                        }).Result;

                        if (testResult8)
                        {
                            ConsoleOutput.PrintMessage(String.Format("8.0 Trends (and SearchFor) Tests Status: {0}", testResult8),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("8.0 Trends (and SearchFor) Tests Status: {0}", testResult8),
                                                       ConsoleColor.Red);
                        }
                    }


                    // Test Series 9(also tests SearchFor in SearchExtensions)
                    if (testSeriesToRun.Contains(9))
                    {
                        var trln        = new SuggestedUsersLiveFireTests();
                        var testResult9 = trln.DoSuggestedUsersTest(session, new List <int> {
                            1, 2
                        }).Result;

                        if (testResult9)
                        {
                            ConsoleOutput.PrintMessage(String.Format("9.0 SuggestedUsers Tests Status: {0}", testResult9),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("9.0 SuggestedUsers Tests Status: {0}", testResult9),
                                                       ConsoleColor.Red);
                        }
                    }


                    // Test Series 10 Lists
                    if (testSeriesToRun.Contains(10))
                    {
                        var lsts         = new ListsLiveFireTests();
                        var testResult10 = lsts.DoListsTest(session, new List <int> {
                            1, 5, 7
                        }).Result;

                        if (testResult10)
                        {
                            ConsoleOutput.PrintMessage(String.Format("10.0 Lists Tests Status: {0}", testResult10),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("10.0 Lists Tests Status: {0}", testResult10),
                                                       ConsoleColor.Red);
                        }
                    }


                    // Test Series 11 Lists
                    if (testSeriesToRun.Contains(11))
                    {
                        var cmbs         = new CombosFireTests();
                        var testResult11 = cmbs.DoCombosTest(session, new List <int> {
                            2, 3
                        }).Result;

                        if (testResult11)
                        {
                            ConsoleOutput.PrintMessage(String.Format("11.0 Combos Tests Status: {0}", testResult11),
                                                       ConsoleColor.White);
                        }
                        else
                        {
                            ConsoleOutput.PrintMessage(String.Format("11.0 Combos Tests Status: {0}", testResult11),
                                                       ConsoleColor.Red);
                        }
                    }
                }
                else
                {
                    ConsoleOutput.PrintError("Unable to Authorise.");
                }
            }
            ConsoleOutput.PrintMessage("Press Return to close window");
            System.Console.ReadLine();
        }