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