private async static Task <Status[]> GetStatus(string url, IEnumerable <string[]> parameters) { try { var json = await Get(url, parameters); var statuses = Status.ParseJson(json); return(statuses); } catch (Exception e) { Console.WriteLine(e); return(new Status[0]); } }
private static async Task <Status[]> GetStatus(string url, IEnumerable <string[]> parameters) { try { var json = await Get(url, parameters); var statuses = Status.ParseJson(json); return(statuses); } catch (Exception e) { Trace.TraceError(e.Message); return(new Status[0]); } }
public async Task Retweet(Tweet tweet) { if (tweet.IsRetweet) { var id = string.IsNullOrWhiteSpace(tweet.RetweetStatusId) ? tweet.StatusId : tweet.RetweetStatusId; var json = Twitter.GetTweet(id); var status = Status.ParseJson("[" + json + "]")[0]; var retweetStatusId = status.CurrentUserRetweet.Id; await Twitter.DestroyStatus(retweetStatusId); tweet.IsRetweet = false; } else { await Twitter.RetweetStatus(tweet.StatusId); tweet.IsRetweet = true; } }
public static void User(CancellationToken cancelationToken) { Task.Run(() => { while (cancelationToken.IsCancellationRequested == false) { var delay = Task.Delay(30 * 1000, cancelationToken); delay.Wait(cancelationToken); if (delay.IsCanceled || delay.IsFaulted) { break; } Trace.TraceInformation("{ Start Twitter User Stream }"); const string url = "https://userstream.twitter.com/1.1/user.json"; var oauth = new OAuth(); var nonce = OAuth.Nonce(); var timestamp = OAuth.TimeStamp(); var signature = OAuth.Signature("GET", url, nonce, timestamp, oauth.AccessToken, oauth.AccessTokenSecret, null); var authorizeHeader = OAuth.AuthorizationHeader(nonce, timestamp, oauth.AccessToken, signature); var request = WebRequestWrapper.Create(new Uri(url)); request.Headers.Add("Authorization", authorizeHeader); try { using (var response = request.GetResponse()) using (var stream = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { stream.BaseStream.ReadTimeout = 60 * 1000; while (true) { var json = stream.ReadLine(); if (json == null) { Trace.TraceInformation("{ null }"); break; } if (cancelationToken.IsCancellationRequested) { break; } Trace.TraceInformation(string.IsNullOrWhiteSpace(json) ? "{ Blankline }" : json); var serializer = new JavaScriptSerializer(); var reply = serializer.Deserialize <Dictionary <string, object> >(json); if (reply != null && reply.ContainsKey("user")) { Trace.TraceInformation("{ tweet identified }"); var statuses = Status.ParseJson("[" + json + "]"); Application.Current.Dispatcher.InvokeAsync (() => UpdateStatusHomeTimelineCommand.Command.Execute(statuses, Application.Current.MainWindow)); } } } } catch (WebException ex) { Trace.TraceError(ex.ToString()); } catch (ArgumentNullException ex) { Trace.TraceError(ex.ToString()); } catch (ArgumentException ex) { Trace.TraceError(ex.ToString()); } catch (InvalidOperationException ex) { Trace.TraceError(ex.ToString()); } catch (IOException ex) { Trace.TraceError(ex.ToString()); } } Trace.TraceInformation("{ Stream task ends }"); }, cancelationToken); }