public static TweetItem BuildTweetItem(ITweet tweet) { TweetItem tweetItem = new TweetItem(); tweetItem.TweetId = tweet.Id; tweetItem.TweetText = tweet.FullText; tweetItem.URL = tweet.Url; tweetItem.CreatedAt = tweet.CreatedAt; tweetItem.AuthorScreenName = tweet.CreatedBy.ScreenName; tweetItem.mediaItems = ExtractMediaFromTweet(tweet); if (tweet.InReplyToStatusId != null) { tweetItem.InReplyToStatusId = tweet.InReplyToStatusId; tweetItem.InReplyToScreenName = tweet.InReplyToScreenName; } if (tweet.QuotedStatusId != null) { tweetItem.QuotedStatusId = tweet.QuotedStatusId; if (tweet.QuotedTweet != null) { tweetItem.QuotedScreenName = tweet.QuotedTweet.CreatedBy.ScreenName; } else { tweetItem.QuotedScreenName = null; } } return(tweetItem); }
public async Task <IActionResult> PutTweetItem(long id, TweetItem tweetItem) { if (id != tweetItem.Id) { return(BadRequest()); } _context.Entry(tweetItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TweetItemExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> /// <param name="navigationParameter">The parameter value passed to /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested. /// </param> /// <param name="pageState">A dictionary of state preserved by this page during an earlier /// session. This will be null the first time a page is visited.</param> protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { _inReplyToStatus = navigationParameter != null ? navigationParameter as TweetItem : null; if (_inReplyToStatus != null) { updateText.Text = "@" + _inReplyToStatus.Subtitle; } }
public TweetItem TweetSplit(string TweetLine) { TweetItem tweetItem = new TweetItem(); Char Control; int CountSeparator = 0; string Text = ""; for (int index = 0; index < TweetLine.Length; index++) { Control = Convert.ToChar(TweetLine.Substring(index, 1)); // 5 tane , bulduysan bundan sonrası tweet , aramaya gerek yok. // tırnaları almasın diye başına +1 sonuna +2 koydum if (CountSeparator == 5) { tweetItem.Tweet = TweetLine.Substring(index + 1, TweetLine.Length - (index + 2)); return(tweetItem); } // , olana kadar karakterleri text yap if (Control != 44) { Text += Control; } // , olduğunda sıraya göre ilgili itema texti yaz // Dosyada Her itemın yeri belli olduğu için bu yöntem uygun if (Control == 44) { if (CountSeparator == 0) { tweetItem.Polority = Convert.ToInt32(ClearText(Text)); } if (CountSeparator == 1) { tweetItem.Id = Convert.ToInt32(ClearText(Text)); } if (CountSeparator == 2) { tweetItem.Date = ClearText(Text); } if (CountSeparator == 3) { tweetItem.Query = ClearText(Text); } if (CountSeparator == 4) { tweetItem.User = ClearText(Text); } CountSeparator++; Text = ""; } } return(tweetItem); }
public async Task <string> GetTweetsAsync(string accessToken = null) { var url = $"https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name={AppConfig.TwitterUsername}&count=50&tweet_mode=extended"; var myTweets = new List <TweetItem>(); if (accessToken == null) { accessToken = await GetAccessToken(); } using (var client = new HttpClient()) { var request = new HttpRequestMessage(HttpMethod.Get, url); request.Headers.Add("Authorization", "Bearer " + accessToken); HttpResponseMessage response = await client.SendAsync(request); if (response.StatusCode == HttpStatusCode.OK) { var tweets = response.Content.ReadAsStringAsync().Result; var tweetArray = JArray.Parse(tweets); foreach (var tweet in tweetArray) { var text = tweet.SelectToken("full_text").ToString(); var cleanText = Regex.Replace(text, @"http[^\s]+", ""); var hashtag = Regex.Match(text, @"#[a-zA-Z0-9]+"); if (hashtag.Success) { var hashtagLink = "<a href=\"https://twitter.com/hashtag/" + hashtag.Value.Replace("#", "") + "\">" + hashtag.Value + "</a>"; cleanText = cleanText.Replace(hashtag.Value, hashtagLink); } var date = tweet.SelectToken("created_at").ToString(); var tweetItem = new TweetItem { Text = cleanText, Published = date.Split("+")[0] }; var extended = tweet.SelectToken("extended_entities"); if (extended != null) { var media = extended.SelectToken("media").ToString(); if (media != null) { var mediaArray = JArray.Parse(media); tweetItem.Attachments = mediaArray.ToObject <List <object> >(); } } myTweets.Add(tweetItem); } } } var resp = Newtonsoft.Json.JsonConvert.SerializeObject(myTweets); return(resp); }
public async Task <ActionResult <TweetItem> > PostTweetItem(TweetItem tweetItem) { if (tweetItem.Description.Length <= 50) { _context.TweetItem.Add(tweetItem); await _context.SaveChangesAsync(); return(CreatedAtAction("GetTweetItem", new { id = tweetItem.Id }, tweetItem)); } else { return(Problem("Your tweet was too short. Must be shorter than 50 Characters.", null, null, "Too short")); } }
public IActionResult GetHomeTimeline() { TwitterViewModel homeView = new TwitterViewModel(); try { if (config.TwitterConfiguration.Access_Token == null) { throw new Tweetinvi.Exceptions.TwitterNullCredentialsException(); } if (config.TwitterConfiguration.Access_Secret == null) { throw new Tweetinvi.Exceptions.TwitterNullCredentialsException(); } var userCredentials = Auth.CreateCredentials( config.TwitterConfiguration.Consumer_Key , config.TwitterConfiguration.Consumer_Secret , config.TwitterConfiguration.Access_Token , config.TwitterConfiguration.Access_Secret); var authenticatedUser = Tweetinvi.User.GetAuthenticatedUser(userCredentials); IEnumerable <ITweet> twitterFeed = authenticatedUser.GetHomeTimeline(config.TweetFeedLimit); List <TweetItem> tweets = new List <TweetItem>(); foreach (ITweet tweet in twitterFeed) { TweetItem tweetItem = new TweetItem(); tweetItem.Url = tweet.Url; tweets.Add(tweetItem); } homeView.HomeTimelineTweets = tweets; } catch (Tweetinvi.Exceptions.TwitterNullCredentialsException ex) { return(RedirectToAction("AuthenticateTwitter")); } catch (Exception ex) { } return(View("Views/Twitter/HomeTimeline.cshtml", homeView)); }
internal static void Favorite(TweetItem selectedItem) { if (_sampleDataSource._auth == null) { _sampleDataSource.InitGroups(); } using (var twitterCtx = new TwitterContext(_sampleDataSource._auth)) { Status response = twitterCtx.CreateFavorite(selectedItem.UniqueId); } }
internal static Status SendUpdate(string updateText, TweetItem inRepyTo) { if (_sampleDataSource._auth == null) { _sampleDataSource.InitGroups(); } using (var twitterCtx = new TwitterContext(_sampleDataSource._auth)) { Status tweet = null; if (inRepyTo != null) { tweet = twitterCtx.UpdateStatus(updateText, true, inRepyTo.UniqueId); } else { tweet = twitterCtx.UpdateStatus(updateText, true); } if (tweet != null && !string.IsNullOrEmpty(tweet.StatusID)) { updateText = string.Empty; } return tweet; } }
private void InitGroups() { if (SuspensionManager.SessionState.ContainsKey("Authorizer")) { _auth = SuspensionManager.SessionState["Authorizer"] as PinAuthorizer; if (_auth != null) { using (var twitterCtx = new TwitterContext(_auth)) { string screenName = twitterCtx.AuthorizedClient.ScreenName; var users = (from usr in twitterCtx.User where usr.Type == UserType.Lookup && usr.ScreenName == screenName select usr).ToList(); this.LoggedInUser = new TweetItem(users[0].ID, users[0].Name, users[0].ScreenName, users[0].ProfileImageUrl, "", "", null); TwitterList timeline = new TwitterList("timeline", "Timeline", "Your Tweet Stream", null, users[0].Status.Text); this._allGroups.Add(timeline); TwitterList atMentions = new TwitterList("atMentions", "@ Connect", "Your @ Mentions", null, users[0].Status.Text); this._allGroups.Add(atMentions); } } } else if (!SuspensionManager.SessionState.ContainsKey("Authorizer")) { LocalDataCredentials cred = new LocalDataCredentials(); if (cred.ToString() != ",,,,,") { SuspensionManager.SessionState["SavedAuthorizer"] = cred; try { PinAuthorizer auth = new PinAuthorizer { Credentials = (LocalDataCredentials)SuspensionManager.SessionState["SavedAuthorizer"], UseCompression = true }; SuspensionManager.SessionState["Authorizer"] = auth; auth.ScreenName = cred.ScreenName; auth.UserId = cred.UserId; } catch (Exception ex) { ((LocalDataCredentials)SuspensionManager.SessionState["SavedAuthorizer"]).Clear(); } } } }
private void NavigateToSendUpdate(TweetItem inReplyTo) { this.Frame.Navigate(typeof(SendUpdate), inReplyTo); }
private void Form1_Load(object sender, EventArgs e) { char[] delimiterChars = { ' ', ',', '.', ':' }; List <TopTweet> TopTweetList = new List <TopTweet>(); int TweetTrue = 0; using (var reader = new StreamReader(@"training.1600000.processed.noemoticon.csv")) { List <string> listA = new List <string>(); List <string> listB = new List <string>(); while (!reader.EndOfStream) { var line = reader.ReadLine(); TweetItem tweet = TweetSplit(line); //önce user kontrolü TweetTrue = TopTweetList.FindIndex(x => x.Keyword == tweet.User); //Yoksa listeye ekle if (TweetTrue == -1) { TopTweet topTweet = new TopTweet(); topTweet.Keyword = tweet.User; topTweet.Count = 1; TopTweetList.Add(topTweet); } //Varsa Sayısını Arttır if (TweetTrue != -1) { TopTweet topTweet = TopTweetList.Find(x => x.Keyword == tweet.User); topTweet.Count += 1; //Eskisini silip TopTweetList.RemoveAt(TweetTrue); //Sayısı artan halini ekliyoruz TopTweetList.Insert(TweetTrue, topTweet); } //Sonra tweeti kelimelere bölüp kontrol string[] TweetTextList = tweet.Tweet.Split(delimiterChars); for (int index = 0; index < TweetTextList.Length; index++) { //önce user kontrolü TweetTrue = TopTweetList.FindIndex(x => x.Keyword == TweetTextList[index]); //Yoksa listeye ekle if (TweetTrue == -1) { TopTweet topTweet = new TopTweet(); topTweet.Keyword = TweetTextList[index]; topTweet.Count = 1; TopTweetList.Add(topTweet); } //Varsa Sayısını Arttır if (TweetTrue != -1) { TopTweet topTweet = TopTweetList.Find(x => x.Keyword == TweetTextList[index]); topTweet.Count += 1; //Eskisini silip TopTweetList.RemoveAt(TweetTrue); //Sayısı artan halini ekliyoruz TopTweetList.Insert(TweetTrue, topTweet); } } } } //Sıralama TopTweetList.Sort(delegate(TopTweet x, TopTweet y) { return(y.Count.CompareTo(x.Count)); }); //Yazdırma int TopLimit = 0; foreach (var item in TopTweetList) { listBox1.Items.Add(item.Keyword + "(" + item.Count + ")"); TopLimit++; if (TopLimit > 10) { break; } } }