// Gets Twitter Feed from azure database
        public static ICollection<StatusTweet> GetTweetsOnlyFeedFromDB(string twitterAccountToDisplay)
        {
            var stList = new List<StatusTweet>();
            try
            {
                using (var dbContext = new OnlyTweetContext())
                {
                    dbContext.Database.Connection.Open();
                    //Get top 20 Status Tweets from the database 
                    var query = (from t in dbContext.OnlyTweetDB
                                 where t.ScreenName == twitterAccountToDisplay
                                 orderby t.CreatedAt descending
                                 select t).Take(20);

                    //Console.WriteLine("All Status Tweet in the database:");
                    foreach (var item in query)
                    {
                        var st = new StatusTweet();
                        //Console.WriteLine("{0}:\n{1}\n\t{2}\n\t{3}\n\", item.StatusID, item.ScreenName, item.Text, item.CreatedAt);

                        st.Text = item.Text;
                        st.CreatedAt = item.CreatedAt;
                        st.StatusID = item.StatusID;
                        st.ScreenName = item.ScreenName;
                        st.StringStatusID = item.StatusID.ToString();

                        switch (item.ScreenName)
                        {
                            case "Linq2Twitr": //Sample Username: https://twitter.com/Linq2Twitr
                                st.ProfileImageUrlHttps = "https://pbs.twimg.com/profile_images/378800000625948439/57f4351535721aeedc632745ceaacfea_400x400.png";
                                break;
                            default:
                                st.ProfileImageUrlHttps = "";
                                break;
                        }

                        stList.Add(st);
                    }

                }
            }
            catch (Exception ex)
            {
                string innerMessage = (ex.InnerException != null) ? ex.InnerException.Message : String.Empty;
                //Console.WriteLine("{0}\n{1}", ex.Message, innerMessage);
            }

            return stList.ToList();
        }
示例#2
0
        public static List<Tweet> GetFromAPI() {

            ulong sinceID = 83407830496968704;
            List<Tweet> statusList = new List<Tweet>();

            var twitterCtx = new TwitterContext(auth);

            ulong maxID;
            const int Count = 6000;

            var userStatusResponse =
                (from tweet in twitterCtx.Status
                 where tweet.Type == StatusType.User &&
                   tweet.ScreenName == Settings.Instance.username &&
                   tweet.SinceID == sinceID &&
                   tweet.Count == Count &&
                   tweet.Retweeted == false
                 select tweet)
                .ToList();

            foreach (var item in userStatusResponse)
            {
                statusList.Add((Tweet)item);
            }

            // first tweet processed on current query
            maxID = userStatusResponse.Min(
                status => ulong.Parse(status.StatusID.ToString())) - 1;

            do
            {
                // now add sinceID and maxID
                userStatusResponse =
                    (from tweet in twitterCtx.Status
                     where tweet.Type == StatusType.User &&
                           tweet.ScreenName == Settings.Instance.username &&
                           tweet.Count == Count &&
                           tweet.SinceID == sinceID &&
                           tweet.MaxID == maxID &&
                           tweet.Retweeted == false
                     select tweet)
                    .ToList();

                if (userStatusResponse.Count > 0)
                {
                    // first tweet processed on current query
                    maxID = userStatusResponse.Min(
                        status => ulong.Parse(status.StatusID.ToString())) - 1;

                    foreach (var item in userStatusResponse)
                    {
                        statusList.Add((Tweet)item);
                    }
                }
            }
            while (userStatusResponse.Count != 0 && statusList.Count < Count);

            return statusList.ToList();


        }