Ejemplo n.º 1
0
        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;
     }
 }
Ejemplo n.º 4
0
        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);
 }
Ejemplo n.º 12
0
        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;
                }
            }
        }