public static async Task <List <Tweet> > GetTweets(HttpClient client) { var accessToken = await GetAccessToken(client); var requestUserTimeline = new HttpRequestMessage(HttpMethod.Get, $"https://api.twitter.com/1.1/statuses/user_timeline.json?count=100&screen_name=shanselman&trim_user=0&exclude_replies=1"); requestUserTimeline.Headers.Add("Authorization", "Bearer " + accessToken); var responseUserTimeLine = await client.SendAsync(requestUserTimeline); var json = await responseUserTimeLine.Content.ReadAsStringAsync(); var tweetsRaw = TweetRaw.FromJson(json); return(tweetsRaw.Select(t => new Tweet { StatusID = t?.RetweetedStatus?.User?.ScreenName == "shanselman" ? t.RetweetedStatus.IdStr : t.IdStr, ScreenName = t?.RetweetedStatus?.User?.ScreenName ?? t.User.ScreenName, Text = t.Text, CurrentUserRetweet = (ulong)t.RetweetCount, CreatedAt = GetDate(t.CreatedAt, DateTime.MinValue), Image = t.RetweetedStatus != null && t.RetweetedStatus.User != null ? t.RetweetedStatus.User.ProfileImageUrlHttps.ToString() : (t.User.ScreenName == "shanselman" ? "scott159.png" : t.User.ProfileImageUrlHttps.ToString()) }).ToList()); }
public async Task <IEnumerable <Tweet> > GetTweetsAsync(string screenName, bool includeRetweets) { var accessToken = await GetAccessToken(client); var requestUserTimeline = new HttpRequestMessage(HttpMethod.Get, $"https://api.twitter.com/1.1/statuses/user_timeline.json?count=100&screen_name={screenName}&trim_user=0&exclude_replies=1"); requestUserTimeline.Headers.Add("Authorization", "Bearer " + accessToken); var responseUserTimeLine = await client.SendAsync(requestUserTimeline); var json = await responseUserTimeLine.Content.ReadAsStringAsync(); var tweetsRaw = TweetRaw.FromJson(json); List <Tweet> tweets = tweetsRaw.Select(t => new Tweet { IsReTweet = t?.RetweetedStatus != null, StatusID = t?.RetweetedStatus?.User?.ScreenName == screenName ? t.RetweetedStatus.IdStr : t.IdStr, ScreenName = t?.RetweetedStatus?.User?.ScreenName ?? t.User.ScreenName, Text = HttpUtility.HtmlDecode(t?.Text), RetweetCount = t.RetweetCount, FavoriteCount = t.FavoriteCount, CreatedAt = GetDate(t.CreatedAt, DateTime.MinValue), Image = t?.RetweetedStatus != null && t?.RetweetedStatus?.User != null ? t.RetweetedStatus.User.ProfileImageUrlHttps.ToString() : (t?.User?.ScreenName == screenName ? "liar_in_chief.png" : t?.User?.ProfileImageUrlHttps.ToString()), MediaUrl = t?.Entities?.Media?.FirstOrDefault()?.MediaUrlHttps?.AbsoluteUri }).ToList(); if (!includeRetweets) { tweets = tweets.Where(t => !t.IsReTweet).ToList(); } return(tweets); }
async Task <IEnumerable <TweetRaw> > GetTweets(string accessToken = null) { if (accessToken == null) { accessToken = await GetAccessToken(); } var requestUserTimeline = new HttpRequestMessage(HttpMethod.Get, $"https://api.twitter.com/1.1/statuses/user_timeline.json?count=100&screen_name=shanselman&trim_user=0&exclude_replies=1"); requestUserTimeline.Headers.Add("Authorization", "Bearer " + accessToken); var httpClient = new HttpClient(); HttpResponseMessage responseUserTimeLine = await httpClient.SendAsync(requestUserTimeline); string json = await responseUserTimeLine.Content.ReadAsStringAsync(); return(TweetRaw.FromJson(json)); }
public static async Task AddTweet(TweetRaw t) { try { if (t.User != null) { t.UserId = t.User.Id; await AppDbHelper <User> .InsertOrUpdateTweetAsync(t.User); } if (t.QuotedStatus != null) { await AddTweet(t.QuotedStatus); } if (t.RetweetedStatus != null) { await AddTweet(t.RetweetedStatus); } await AppDbHelper <TweetRaw> .InsertOrUpdateTweetAsync(t); if (t.ExtendedTweet != null) { t.ExtendedTweet.TweetRawId = t.Id; await AppDbHelper <ExtendedTweet> .InsertOrUpdateTweetAsync(t.ExtendedTweet); } if (t.Place != null) { t.Place.TweetRawId = t.Id; await AppDbHelper <Place> .InsertOrUpdateTweetAsync(t.Place); if (t.Place.BoundingBox != null) { t.Place.BoundingBox.PlaceId = t.Place.Id; await AppDbHelper <BoundingBox> .InsertOrUpdateTweetAsync(t.Place.BoundingBox); } } } catch (Exception ex) { } }
public void NewTweet(TweetRaw tweetRaw) { }
public TweetDto CreateTweetDto(TweetRaw x) { return(new TweetDto { Id = x.Id, CreatedAt = x.CreatedAt, Text = x.Text, InReplyToStatusId = x.InReplyToStatusId, InReplyToScreenName = x.InReplyToScreenName, UserDefaultProfile = x.User.DefaultProfile, UserDefaultProfileImage = x.User.DefaultProfileImage, FavoriteCount = x.FavoriteCount, UserFollowers = x.User.Followers, UserFollowing = x.User.Following, IsQuoteStatus = x.IsQuoteStatus, IsRetweetStatus = x.IsRetweetStatus, UserName = x.User.Name, UserScreenName = x.User.ScreenName, NegativeScore = x.TweetSentiment != null ? x.TweetSentiment.NegativeScore : -1, PositiveScore = x.TweetSentiment != null ? x.TweetSentiment.PositiveScore : -1, NeutralScore = x.TweetSentiment != null ? x.TweetSentiment.NeutralScore : -1, QuoteCount = x.QuoteCount, ReplyCount = x.ReplyCount, RetweetCount = x.RetweetCount, Sentiment = x.TweetSentiment != null?x.TweetSentiment.Sentiment.ToString() : "", UserId = x.User.Id, UserProfileBanner = x.User.ProfileBanner, UserProfileImage = x.User.ProfileImage, UserVerified = x.User.Verified, Hashtags = (x.TweetsHashtags != null && x.TweetsHashtags.Count > 0) ? x.TweetsHashtags.Select(x => $"#{x.Hashtags}").ToList() : null, SentimentSentence = (x.TweetSentiment != null && x.TweetSentiment.Sentences != null) ? x.TweetSentiment.Sentences.Select((s) => new SentimentSentenceDto { Sentiment = s.Sentiment.ToString(), Length = s.Length, NegativeScore = s.NegativeScore, NeutralScore = s.NeutralScore, PositiveScore = s.PositiveScore } ).ToList() : null, GeoCoordinate = (x.User.GeoUsers != null && x.User.GeoUsers.Count > 0) ? new GeoCoordinateDto { Lat = x.User.GeoUsers[0].Lat, Lon = x.User.GeoUsers[0].Lon, GeoName = x.User.GeoUsers[0].DisplayName } : null, EntityRecognizeds = (x.TweetEntities != null && x.TweetEntities.Count > 0) ? x.TweetEntities.Select((e) => new EntityRecognizedDto { EntityName = e.EntityName, EntityType = e.EntityType, Length = e.Length, Offset = e.Offset } ).ToList() : null }); }