public void Can_get_mentions_and_fail() { var service = new TwitterService(_consumerKey, _consumerSecret); var mentions = service.ListTweetsMentioningMe(); Assert.AreEqual(HttpStatusCode.Unauthorized, service.Response.StatusCode); Assert.IsTrue(mentions.Count() == 1); var error = service.Deserialize <TwitterError>(mentions.First()); Assert.IsNotNull(error); Assert.IsNotNullOrEmpty(error.Request); Assert.IsNotNullOrEmpty(error.ErrorMessage); }
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); }
public void Can_get_mentions_and_fail_in_xml() { var service = new TwitterService(_consumerKey, _consumerSecret) { Format = TwitterServiceFormat.Xml }; var mentions = service.ListTweetsMentioningMe(); Assert.AreEqual(HttpStatusCode.Unauthorized, service.Response.StatusCode); Assert.IsTrue(mentions.Count() == 1); var error = service.Deserialize<TwitterError>(mentions.First()); Assert.IsNotNull(error); Assert.IsNotNullOrEmpty(error.Request); Assert.IsNotNullOrEmpty(error.ErrorMessage); }
static void Main(string[] args) { var AppInfo = new { CLIENT_ID = Environment.GetEnvironmentVariable("CLIENT_ID"), CLIENT_SECRET = Environment.GetEnvironmentVariable("CLIENT_SECRET") }; if (File.Exists("AppAuth.json")) { AppInfo = JsonConvert.DeserializeAnonymousType(File.ReadAllText("AppAuth.json"), AppInfo); } if (AppInfo.CLIENT_ID == null || AppInfo.CLIENT_SECRET == null) { string id = AppInfo.CLIENT_ID; if (AppInfo.CLIENT_ID == null) { Console.Write("AppID: "); id = Console.ReadLine(); } string secret = AppInfo.CLIENT_SECRET; if (AppInfo.CLIENT_SECRET == null) { Console.Write("Secret: "); secret = Console.ReadLine(); } AppInfo = new { CLIENT_ID = id, CLIENT_SECRET = secret }; File.WriteAllText("AppAuth.json", JsonConvert.SerializeObject(AppInfo)); } service = new TwitterService(AppInfo.CLIENT_ID, AppInfo.CLIENT_SECRET); access = null; if (File.Exists("token.json")) { access = service.Deserialize <OAuthAccessToken>(File.ReadAllText("token.json")); } if (access == null) { OAuthRequestToken requestToken = service.GetRequestToken(); Uri uri = service.GetAuthorizationUri(requestToken); Console.WriteLine(uri.ToString()); var verifier = Console.ReadLine(); access = service.GetAccessToken(requestToken, verifier); var tokenstr = service.Serializer.Serialize(access, typeof(OAuthAccessToken)); File.WriteAllText("token.json", tokenstr); } service.AuthenticateWith(access.Token, access.TokenSecret); Console.WriteLine($"Authenticated as {access.ScreenName}"); AllTweets = new TwitterStatus[0]; if (File.Exists("AllTweets.json")) { AllTweets = JsonConvert.DeserializeObject <TwitterStatus[]>(File.ReadAllText("AllTweets.json")) .Union(AllTweets) .OrderBy(t => t.Id) .ToArray(); } History = new List <Match>(); if (File.Exists("history.json")) { var blob = File.ReadAllText("history.json"); var matches = JsonConvert.DeserializeObject <Match[]>(blob); History.AddRange(matches); } GetTweets(); LoadRoundTimerFromDisk(); Save(); NextRound: Refresh(); if (CurrentBout.Announcement == -1) { Announce(); Save(); } if (Announcement == null) { Announcement = service.GetTweet(new GetTweetOptions() { Id = CurrentBout.Announcement }); if (Announcement == null) { Announce(); Announcement = service.GetTweet(new GetTweetOptions() { Id = CurrentBout.Announcement }); } Console.WriteLine($"> {Announcement.Text}"); } var age = DateTime.UtcNow.Subtract(Announcement.CreatedDate); var TimeBetweenRounds = ThirtySeconds; //new TimeSpan(RoundDuration.Ticks / 10); while (age.TotalSeconds < (RoundDuration.TotalSeconds - TimeBetweenRounds.TotalSeconds)) { var diff = RoundDuration.Subtract(age).Subtract(TimeBetweenRounds); if (diff.TotalHours > 1) { Console.WriteLine($" Sleeping 1 hour of {diff.TotalHours}"); Thread.Sleep(OneHour); if (DateTime.Now.Subtract(LastRecount).TotalHours > 2) { GetTweets(); Recount(); LastRecount = DateTime.Now; } } else { Console.WriteLine($" Sleeping {diff.ToString()}"); Thread.Sleep(diff); } LoadRoundTimerFromDisk(); // In case it's been updated. age = DateTime.UtcNow.Subtract(Announcement.CreatedDate); } CalcWinner(); Save(); GetTweets(); Console.WriteLine($" Sleeping {TimeBetweenRounds.ToString()}"); Thread.Sleep(TimeBetweenRounds); if (DateTime.Now.Subtract(LastRecount).TotalHours > 6) { Recount(); LastRecount = DateTime.Now; } if (RoundDuration.TotalMinutes >= 60 && DateTime.Now.Minute != 0) { Console.WriteLine($" Sleeping {ThirtySeconds.ToString()}"); Thread.Sleep(ThirtySeconds); } goto NextRound; }
private static void Main(string[] args) { var appInfo = new { CLIENT_ID = Environment.GetEnvironmentVariable("CLIENT_ID"), CLIENT_SECRET = Environment.GetEnvironmentVariable("CLIENT_SECRET") }; if (File.Exists("AppAuth.json")) { appInfo = JsonConvert.DeserializeAnonymousType(File.ReadAllText("AppAuth.json"), appInfo); } if (appInfo.CLIENT_ID == null || appInfo.CLIENT_SECRET == null) { string id = appInfo.CLIENT_ID; if (appInfo.CLIENT_ID == null) { Console.Write("AppID: "); id = Console.ReadLine(); } string secret = appInfo.CLIENT_SECRET; if (appInfo.CLIENT_SECRET == null) { Console.Write("Secret: "); secret = Console.ReadLine(); } appInfo = new { CLIENT_ID = id, CLIENT_SECRET = secret }; File.WriteAllText("AppAuth.json", JsonConvert.SerializeObject(appInfo)); } service = new TwitterService(appInfo.CLIENT_ID, appInfo.CLIENT_SECRET); access = null; if (File.Exists("token.json")) { access = service.Deserialize <OAuthAccessToken>(File.ReadAllText("token.json")); } if (access == null) { OAuthRequestToken requestToken = service.GetRequestToken(); Uri uri = service.GetAuthorizationUri(requestToken); Console.WriteLine(uri.ToString()); var verifier = Console.ReadLine(); access = service.GetAccessToken(requestToken, verifier); var tokenstr = service.Serializer.Serialize(access, typeof(OAuthAccessToken)); File.WriteAllText("token.json", tokenstr); } service.AuthenticateWith(access.Token, access.TokenSecret); Console.WriteLine($"Authenticated as {access.ScreenName}"); foreach (string gamelink in RandomGames()) { string source; try { var link = gamelink.Replace("about://", ""); source = GetSourceFromGamePage(link); if (source == null) { continue; } Console.WriteLine(); Console.WriteLine(source); } catch (Exception) { Thread.Sleep(1000); continue; } try { switch (Path.GetExtension(source)) { case ".txt": case ".ni": ReadSource(source); break; case ".html": //todo: Deal with HTML source files. ReadSource(source.Replace(".html", ".txt")); break; case ".zip": case ".sit": break; default: // Try anyway? ReadSource(source); break; } } catch (WebException c) { // 404 or some such error. Go to the Next story. continue; } } }