private void bw_DoWork(object sender, DoWorkEventArgs e) { TwitterService service = new TwitterService(consumerKeyTextBox.Text, consumerSecretTextBox.Text, accessTokenTextBox.Text, accessTokenSecretTextBox.Text); TwitterUser user = service.VerifyCredentials(); if (service.Response.InnerException != null) { TwitterError error = service.Deserialize<TwitterError>(service.Response.Response); if (!string.IsNullOrEmpty(error.ErrorMessage)) { e.Result = error; // return the error object on failure } else { e.Result = null; // err, dunno. return null } } else if (user != null) { e.Result = user; // return user object on success } else { e.Result = null; // unknown error } }
private static Action<TwitterStreamArtifact, TwitterResponse> ProcessTweets(TwitterService service) { return (tweets, response) => { if (tweets == null) { } else { try { var status = service.Deserialize<TwitterStatus>(tweets); if (status.User != null) { Console.WriteLine(string.Format("{0}:{1}\n{2}", status.User.ScreenName, status.Text,status.Id)); if(!CurrentGames.ContainsKey(status.User.Id)) { var twitterThread = new TwitterThread(status.Id, service); twitterThread.OnStateChange += args => tweetsToSend.Enqueue(args); CurrentGames.Add(status.User.Id, twitterThread); } var thisgame = CurrentGames[status.User.Id]; if(thisgame.IsStarted) { var cluelastpattern = @"(\S*$)"; var match = Regex.Match(status.Text, cluelastpattern); var clue = match.Groups[0].Value; thisgame.Update(clue,status.Id); }else { var clue = ParseClueFromTweet(status); thisgame.Start(clue); } } } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.DarkBlue; Console.WriteLine(ex.Message); Console.ResetColor(); } } }; }
bool IsFail(IEnumerable<TwitterStatus> statuses, string sendto, string feedname = "none") { var service = new TwitterService(); bool result = false; string errorMessage = "no error"; if (TwitterWrapper.LastResponse != null && TwitterWrapper.LastResponse.StatusCode == HttpStatusCode.Unauthorized) { errorMessage = "401 Unauthorized"; result = true; } else { if (statuses.Count() == 1) { TwitterStatus mention = statuses.First(); if (mention.Id == 0) { errorMessage = "Unsuccessfull deserialization"; result = true; } var error = service.Deserialize<TwitterError>(statuses.First()); if (!string.IsNullOrEmpty(error.ErrorMessage)) { errorMessage = error.ErrorMessage; result = true; } } } if (result) { BotMethods.SendMessage(SendType.Message, sendto, "Error on feed '{0}': {1}".Fill(feedname, errorMessage)); } return result; }