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(); }
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(); }