// retrieves all post of the user
 public static IEnumerable<TwitterStatus> GetUserTimeline(TwitterService service, long userId, bool includeRts, bool excludeReplies)
 {
     ListTweetsOnUserTimelineOptions options = new ListTweetsOnUserTimelineOptions ();
     options.UserId = userId;
     options.IncludeRts = includeRts;
     options.ExcludeReplies = excludeReplies;
     return service.ListTweetsOnUserTimeline (options);
 }
示例#2
0
 public List<TwitterStatus> GetTweetsFromServiceAsync(string account)
 {
     if(account == null || string.IsNullOrEmpty(account))
         return new List<TwitterStatus>();
     var accountOptions = new ListTweetsOnUserTimelineOptions { ScreenName = account, Count = TweetsCount };
     IAsyncResult asyncresult = twitterService.BeginListTweetsOnUserTimeline(accountOptions);
     var result = twitterService.EndListTweetsOnHomeTimeline(asyncresult, TimeOut);
     if (!asyncresult.IsCompleted)
         throw new TimeoutException();
     return result == null ? new List<TwitterStatus>() : result.ToList();
 }
示例#3
0
        protected void timer_Tick(object sender, EventArgs e)
        {
            if (Session["SarkiciScreenName"] != null)
            {
                string screenName = Session["SarkiciScreenName"].ToString();

                var service = new TwitterService("Yrq7nWkcJZWafl8AlCJ7tw", "X0tWjFeXpA9XfCwbCCh9lGlFVN7BXsCQ8CYqWNfG6A");
                service.AuthenticateWith("1521854989-WOniLBLwCey8ixJa0XEsOBLMJLd372UZjZ0g1qY", "4XYQJxuiQtTYUC5DtF5myEX4GH9QPYSdp4zO5DfrE");

                var opt = new TweetSharp.ListTweetsOnUserTimelineOptions();
                opt.ScreenName = screenName;

                IEnumerable <TwitterStatus> tweets = service.ListTweetsOnUserTimeline(opt);

                this.rptTwitter.DataSource =
                    (from x in tweets.ToList()
                     select new { tweet = x.Text }).ToList();

                this.rptTwitter.DataBind();
            }
        }
示例#4
0
        /// <summary>
        /// Get Latest Twitter For Workflow
        /// </summary>
        /// <param name="tweets">Tweets</param>
        /// <param name="page">Page</param>
        /// <param name="count">Count</param>
        /// <param name="last">Last</param>
        /// <returns>True if all tweets processed</returns>
        private bool GetLatestTwitterForWorkflow(IList <tweet.TwitterStatus> tweets, int page, int count, ref DateTime last)
        {
            // ListTweetsOnSpecifiedUserTimeline is not defined anymore...
            //var ts = _twitterService.ListTweetsOnSpecifiedUserTimeline(ConfigHelper.TwitterUser, page, count);

            var options = new tweet.ListTweetsOnUserTimelineOptions {
                ScreenName = ConfigHelper.TwitterUser
            };
            var ts = _twitterService.ListTweetsOnUserTimeline(options);

            bool isAll = true;

            if (ts == null)
            {
                return(true);
            }

            foreach (var t in ts)
            {
                last = (last < t.CreatedDate) ? t.CreatedDate : last;
                if (t.CreatedDate <= _twitterData.LastTwitter)
                {
                    isAll = true;
                    break;
                }
                else
                {
                    isAll = false;
                }

                if (_twitterData.LastTwitter < t.CreatedDate &&
                    t.Text.Contains(ConfigHelper.TwitterPattern))
                {
                    tweets.Add(t);
                }
            }

            return(isAll);
        }
示例#5
0
 public List<TwitterStatus> GetTweetsFromService(string account)
 {
     var accountOptions = new ListTweetsOnUserTimelineOptions {ScreenName = account, Count = TweetsCount};
     return twitterService.ListTweetsOnUserTimeline(accountOptions).ToList();
 }
		public virtual void ListTweetsOnUserTimeline(ListTweetsOnUserTimelineOptions options, Action<IEnumerable<TwitterStatus>, TwitterResponse> action)
		{
			var user_id = options.UserId;
			var screen_name = options.ScreenName;
			var since_id = options.SinceId;
			var count = options.Count;
			var max_id = options.MaxId;
			var trim_user = options.TrimUser;
			var exclude_replies = options.ExcludeReplies;
			var contributor_details = options.ContributorDetails;
			var include_rts = options.IncludeRts;
			
			WithHammock(action, "statuses/user_timeline", FormatAsString, "?user_id=", user_id, "&screen_name=", screen_name, "&since_id=", since_id, "&count=", count, "&max_id=", max_id, "&trim_user="******"&exclude_replies=", exclude_replies, "&contributor_details=", contributor_details, "&include_rts=", include_rts);
		}
		public virtual IAsyncResult BeginListTweetsOnUserTimeline(ListTweetsOnUserTimelineOptions options)
		{
			var user_id = options.UserId;
			var screen_name = options.ScreenName;
			var since_id = options.SinceId;
			var count = options.Count;
			var max_id = options.MaxId;
			var trim_user = options.TrimUser;
			var exclude_replies = options.ExcludeReplies;
			var contributor_details = options.ContributorDetails;
			var include_rts = options.IncludeRts;
				

			return BeginWithHammock<IEnumerable<TwitterStatus>>(WebMethod.Get, "statuses/user_timeline", FormatAsString, "?user_id=", user_id, "&screen_name=", screen_name, "&since_id=", since_id, "&count=", count, "&max_id=", max_id, "&trim_user="******"&exclude_replies=", exclude_replies, "&contributor_details=", contributor_details, "&include_rts=", include_rts);
		}
		public virtual Task<TwitterResponse<IEnumerable<TwitterStatus>>> ListTweetsOnUserTimelineAsync(ListTweetsOnUserTimelineOptions options)
		{
			var user_id = options.UserId;
			var screen_name = options.ScreenName;
			var since_id = options.SinceId;
			var count = options.Count;
			var max_id = options.MaxId;
			var trim_user = options.TrimUser;
			var exclude_replies = options.ExcludeReplies;
			var contributor_details = options.ContributorDetails;
			var include_rts = options.IncludeRts;
				
			
			return ExecuteRequest<IEnumerable<TwitterStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", user_id, "&screen_name=", screen_name, "&since_id=", since_id, "&count=", count, "&max_id=", max_id, "&trim_user="******"&exclude_replies=", exclude_replies, "&contributor_details=", contributor_details, "&include_rts=", include_rts);
		}
示例#9
0
        private void DeserialiseTweetsOnTimeLine(int? Items )
        {
            var service = new Tweet.TwitterService(this.OAuthRequest.consumerKey, this.OAuthRequest.consumerSecret);
             service.AuthenticateWith(this.OAuthRequest.accessToken, this.OAuthRequest.accessTokenSecret);
             var options = new Tweet.ListTweetsOnUserTimelineOptions();
             options.ScreenName = this.username;
             options.IncludeRts = true;
             if (Items != null) options.Count = Items;
             var t  = service.ListTweetsOnUserTimeline(options);

             foreach (var tweet in t)
             {
                 clsTweet e = new clsTweet(tweet.Id,tweet.Text,tweet.TextAsHtml,"",tweet.CreatedDate,tweet.Author.ScreenName,tweet.Author.ProfileImageUrl);
                 _entries.Add(e);
             }
             service = null;
             options = null;
        }
示例#10
0
        public static void TwitterUpdate()
        {
            Rust.TwitterAccount        = "RustUpdates";
            Warcraft.TwitterAccount    = "Warcraft";
            Overwatch.TwitterAccount   = "PlayOverwatch";
            Starcraft.TwitterAccount   = "Starcraft";
            Diablo.TwitterAccount      = "Diablo";
            Hearthstone.TwitterAccount = "PlayHearthstone";
            Heroes.TwitterAccount      = "BlizzHeroes";

            if (hardreset)
            {
                if (resetTime >= 15)
                {
                    hardreset = false;
                    resetTime = 0;
                }
                else
                {
                    resetTime++;
                    return;
                }
            }


            //gets channels to send tweets to
            Channel TwitterRustCH  = YDCbot.TwitterRustCH;
            Channel TwitterBlizzCH = YDCbot.TwitterBlizzCH;
            Channel TwitterFeedCh  = YDCbot.TwitterFeedCh;

            //starts a service with twitter to GET tweets
            var service = new TwitterService(ConsumerKey, ConsumerSecret);

            service.AuthenticateWith(token, tokenSecret);
            //sets up a GET status request for each user, with given name and tweet amounts
            //then posts those tweets in their correct channel


            if (YDCbot.TwitterToFollow != "" && TwitterFeedCh != null)
            {
                List <TwitterStatus> TwitterStatuses = new List <TwitterStatus>();
                var Tweetoptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Tweetoptions.ScreenName = YDCbot.TwitterToFollow;
                if (FollowedTwitter.LastTweet != 0)
                {
                    Tweetoptions.SinceId = FollowedTwitter.LastTweet;
                }
                else
                {
                    Tweetoptions.Count = TweetAmount;
                }
                Tweetoptions.ExcludeReplies = true;
                TwitterStatuses             = service.ListTweetsOnUserTimeline(Tweetoptions).ToList();
                if (TwitterStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in TwitterStatuses)
                    {
                        if (tweet.Id > FollowedTwitter.LastTweet)
                        {
                            FollowedTwitter.LastTweet = tweet.Id;
                        }
                        string TweetToDiscord = "``` " + "https://twitter.com/" + YDCbot.TwitterToFollow + "/status/" + tweet.Id + " ```";

                        TwitterFeedCh.SendMessage(TweetToDiscord);
                    }
                }
            }


            //used as examples, will only work if user has correct text channels in their server
            //YDCbot.cs has the void that sets everything up, check for correct channel names
            #region RustUpdates
            if (YDCbot.HasTwitterRust)
            {
                List <TwitterStatus> RustStatuses = new List <TwitterStatus>();
                var Rustoptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Rustoptions.ScreenName = Rust.TwitterAccount;
                if (Rust.LastTweet != 0)
                {
                    Rustoptions.SinceId = Rust.LastTweet;
                }
                else
                {
                    Rustoptions.Count = TweetAmount;
                }
                Rustoptions.ExcludeReplies = true;
                RustStatuses = service.ListTweetsOnUserTimeline(Rustoptions).ToList();
                if (RustStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in RustStatuses)
                    {
                        if (tweet.Id > Rust.LastTweet)
                        {
                            Rust.LastTweet = tweet.Id;
                        }
                        string TweetToDiscord = "``` " + "https://twitter.com/" + Rust.TwitterAccount + "/status/" + tweet.Id + " ```";

                        TwitterRustCH.SendMessage(TweetToDiscord);
                    }
                }
            }
            #endregion
            if (YDCbot.HasTwitterBlizz)
            {
                #region Diablo
                List <TwitterStatus> DiabloStatuses = new List <TwitterStatus>();
                var Diablooptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Diablooptions.ScreenName = Diablo.TwitterAccount;
                if (Diablo.LastTweet != 0)
                {
                    Diablooptions.SinceId = Diablo.LastTweet;
                }
                else
                {
                    Diablooptions.Count = TweetAmount;
                }
                Diablooptions.ExcludeReplies = true;
                DiabloStatuses = service.ListTweetsOnUserTimeline(Diablooptions).ToList();
                if (DiabloStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in DiabloStatuses)
                    {
                        if (tweet.Id > Diablo.LastTweet)
                        {
                            Diablo.LastTweet = tweet.Id;
                        }
                        string TweetToDiscord = "``` " + "https://twitter.com/" + Diablo.TwitterAccount + "/status/" + tweet.Id + " ```";

                        TwitterBlizzCH.SendMessage(TweetToDiscord);
                        if (tweet.Entities.Media.Count > 0)
                        {
                            foreach (var link in tweet.Entities.Media)
                            {
                                TwitterBlizzCH.SendMessage(link.MediaUrlHttps);
                            }
                        }
                    }
                }
                #endregion
                #region Warcraft
                List <TwitterStatus> WarcraftStatuses = new List <TwitterStatus>();
                var Warcraftoptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Warcraftoptions.ScreenName = Warcraft.TwitterAccount;
                if (Warcraft.LastTweet != 0)
                {
                    Warcraftoptions.SinceId = Warcraft.LastTweet;
                }
                else
                {
                    Warcraftoptions.Count = TweetAmount;
                }
                Warcraftoptions.ExcludeReplies = true;
                WarcraftStatuses = service.ListTweetsOnUserTimeline(Warcraftoptions).ToList();
                if (WarcraftStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in WarcraftStatuses)
                    {
                        if (tweet.Id > Warcraft.LastTweet)
                        {
                            Warcraft.LastTweet = tweet.Id;
                        }
                        string TweetToDiscord = "``` " + "https://twitter.com/" + Warcraft.TwitterAccount + "/status/" + tweet.Id + " ```";

                        TwitterBlizzCH.SendMessage(TweetToDiscord);
                        if (tweet.Entities.Media.Count > 0)
                        {
                            foreach (var link in tweet.Entities.Media)
                            {
                                TwitterBlizzCH.SendMessage(link.MediaUrlHttps);
                            }
                        }
                    }
                }
                #endregion
                #region Starcraft
                List <TwitterStatus> StarcraftStatuses = new List <TwitterStatus>();
                var Starcraftoptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Starcraftoptions.ScreenName = Starcraft.TwitterAccount;
                if (Starcraft.LastTweet != 0)
                {
                    Starcraftoptions.SinceId = Starcraft.LastTweet;
                }
                else
                {
                    Starcraftoptions.Count = TweetAmount;
                }
                Starcraftoptions.ExcludeReplies = true;
                StarcraftStatuses = service.ListTweetsOnUserTimeline(Starcraftoptions).ToList();
                if (StarcraftStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in StarcraftStatuses)
                    {
                        if (tweet.Id > Starcraft.LastTweet)
                        {
                            Starcraft.LastTweet = tweet.Id;
                        }
                        string TweetToDiscord = "``` " + "https://twitter.com/" + Starcraft.TwitterAccount + "/status/" + tweet.Id + " ```";

                        TwitterBlizzCH.SendMessage(TweetToDiscord);
                        if (tweet.Entities.Media.Count > 0)
                        {
                            foreach (var link in tweet.Entities.Media)
                            {
                                TwitterBlizzCH.SendMessage(link.MediaUrlHttps);
                            }
                        }
                    }
                }
                #endregion
                #region Heroes
                List <TwitterStatus> HeroesStatuses = new List <TwitterStatus>();
                var Heroesoptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Heroesoptions.ScreenName = Heroes.TwitterAccount;
                if (Heroes.LastTweet != 0)
                {
                    Heroesoptions.SinceId = Heroes.LastTweet;
                }
                else
                {
                    Heroesoptions.Count = TweetAmount;
                }
                Heroesoptions.ExcludeReplies = true;
                HeroesStatuses = service.ListTweetsOnUserTimeline(Heroesoptions).ToList();
                if (HeroesStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in HeroesStatuses)
                    {
                        if (tweet.Id > Heroes.LastTweet)
                        {
                            Heroes.LastTweet = tweet.Id;
                        }
                        string TweetToDiscord = "``` " + "https://twitter.com/" + Heroes.TwitterAccount + "/status/" + tweet.Id + " ```";

                        TwitterBlizzCH.SendMessage(TweetToDiscord);
                        if (tweet.Entities.Media.Count > 0)
                        {
                            foreach (var link in tweet.Entities.Media)
                            {
                                TwitterBlizzCH.SendMessage(link.MediaUrlHttps);
                            }
                        }
                    }
                }
                #endregion
                #region Hearthstone
                List <TwitterStatus> HearthstoneStatuses = new List <TwitterStatus>();
                var Hearthoptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Hearthoptions.ScreenName = Hearthstone.TwitterAccount;
                if (Hearthstone.LastTweet != 0)
                {
                    Hearthoptions.SinceId = Hearthstone.LastTweet;
                }
                else
                {
                    Hearthoptions.Count = TweetAmount;
                }
                Hearthoptions.ExcludeReplies = true;
                HearthstoneStatuses          = service.ListTweetsOnUserTimeline(Hearthoptions).ToList();
                if (HearthstoneStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in HearthstoneStatuses)
                    {
                        if (tweet.Id > Hearthstone.LastTweet)
                        {
                            Hearthstone.LastTweet = tweet.Id;
                        }
                        string TweetToDiscord = "``` " + "https://twitter.com/" + Hearthstone.TwitterAccount + "/status/" + tweet.Id + " ```";

                        TwitterBlizzCH.SendMessage(TweetToDiscord);
                        if (tweet.Entities.Media.Count > 0)
                        {
                            foreach (var link in tweet.Entities.Media)
                            {
                                TwitterBlizzCH.SendMessage(link.MediaUrlHttps);
                            }
                        }
                    }
                }
                #endregion
                #region Overwatch
                List <TwitterStatus> OverwatchStatuses = new List <TwitterStatus>();
                var Overwatchoptions = new TweetSharp.ListTweetsOnUserTimelineOptions();
                Overwatchoptions.ScreenName = Overwatch.TwitterAccount;
                if (Overwatch.LastTweet != 0)
                {
                    Overwatchoptions.SinceId = Overwatch.LastTweet;
                }
                else
                {
                    Overwatchoptions.Count = TweetAmount;
                }
                Overwatchoptions.ExcludeReplies = true;
                OverwatchStatuses = service.ListTweetsOnUserTimeline(Overwatchoptions).ToList();
                if (OverwatchStatuses.Count > 0)
                {
                    foreach (TwitterStatus tweet in OverwatchStatuses)
                    {
                        if (tweet.Id > Overwatch.LastTweet)
                        {
                            Overwatch.LastTweet = tweet.Id;
                        }

                        string TweetToDiscord = "``` " + "https://twitter.com/" + Overwatch.TwitterAccount + "/status/" + tweet.Id + " ```";
                        TwitterBlizzCH.SendMessage(TweetToDiscord);

                        if (tweet.Entities.Media.Count > 0)
                        {
                            foreach (var link in tweet.Entities.Media)
                            {
                                TwitterBlizzCH.SendMessage(link.MediaUrlHttps);
                            }
                        }
                    }
                }
                #endregion
            }
            TwitterRateLimitStatus rate = service.Response.RateLimitStatus; //checking rate limits to prevent twitter bot from being ip banned
            Console.WriteLine("You have " + rate.RemainingHits + " remaining out of the " + rate.HourlyLimit + " limit. @" + DateTime.Now.ToString("h:mm:ss tt"));
            if (rate.RemainingHits < 25)
            {
                hardreset = true;
                return;
            }
            SaveTwitter();
        }
示例#11
0
        public string getTwitter(string user)
        {
            try
            {
                SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
                SqlDataReader dr;
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "select * from tbl_ext_creds_twitter (nolock) where userid='" + user + "'";
                cmd.Connection = conn;
                conn.Open();

                if (conn.State == ConnectionState.Open)
                {
                    dr = cmd.ExecuteReader();
                    dr.Read();
                    if (dr.HasRows)
                    {
                        //Session["twtoken"] = dr[1].ToString();
                        //Session["twsecret"] = dr[2].ToString();
                        //Session["twscreenname"] = dr[4].ToString();
                        //Session["twuserid"] = dr[3].ToString();

                        var service = new TwitterService(ConfigurationManager.AppSettings["twitter.appkey"].ToString(), ConfigurationManager.AppSettings["twitter.appsecret"].ToString());
                        //service.AuthenticateWith(ConfigurationManager.AppSettings["twitter.accesstoken"].ToString(), ConfigurationManager.AppSettings["twitter.accesstokensecret"].ToString());
                        service.AuthenticateWith(dr[1].ToString(), dr[2].ToString());
                        ListTweetsOnUserTimelineOptions opt = new ListTweetsOnUserTimelineOptions { ScreenName = dr[4].ToString(), Count = 5 };
                        //IEnumerable<TwitterStatus> tweets = service.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { ScreenName = Session["twscreenname"].ToString(), Count = 5 });
                        IEnumerable<TwitterStatus> tweets = service.ListTweetsOnUserTimeline(opt);
                        if (tweets != null)
                        {
                            //var t = (TwitterStatus)JsonConvert.DeserializeObject(tweets, typeof(TwitterStatus));

                            foreach (var tweet in tweets)
                            {
                                MPtweets aTweet = new MPtweets();
                                aTweet.profileImageUrl = tweet.Author.ProfileImageUrl;
                                aTweet.ScreenName = tweet.Author.ScreenName;
                                aTweet.CreatedDate = tweet.CreatedDate.ToString();
                                aTweet.Text = tweet.Text;
                                mpt.Add(aTweet);
                                //twitter.InnerHtml = twitter.InnerHtml + "<li> <p> <table><tr><td><img alt=\"\" src=\"" + tweet.Author.ProfileImageUrl + "\" /></td><td> <table> <tr> <td> " + tweet.Author.ScreenName + " </td> </tr> <tr><td>" + tweet.CreatedDate.ToString("MM/dd/yyyy") + " </td> </tr></table> </td></tr></table> </p></li></br>";
                                //twitter.InnerHtml = twitter.InnerHtml + "<li> <p>" + tweet.Text + "</p></li></br>";
                            }

                            twdata = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(mpt);

                        }

                    }
                    dr.Close();
                }
                conn.Close();
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
            return twdata;
        }
        protected void load_tw_data()
        {
            //Session["twscreenname"] = "makhdumi";
            //if (Session["twtoken"] != null)
            //{
            //string updateStatusURL = "https://api.twitter.com/1.1/statuses/user_timeline.json?screenname=" + Session["twscreenname"].ToString();

            //string outUrl;
            //string OAuthHeaderPOST = OAuthUtility.GetAuthorizationHeaderForPost_OR_QueryParameterForGET(new Uri(updateStatusURL), callbackUrl, httpMethod.POST.ToString(), oauth_consumer_key, oauth_consumer_secret, oauth_access_token, oauth_token_secret, out outUrl);

            //HttpWebRequest request = (HttpWebRequest)WebRequest.Create(outUrl);
            ////request.Method = httpMethod.POST.ToString();
            //request.Headers["Authorization"] = OAuthHeaderPOST;
            //request.Method = "GET";
            //request.GetRequestStream();
            ////byte[] array = Encoding.ASCII.GetBytes(postData);
            ////request.GetRequestStream().Write(array, 0, array.Length);

            if (Session["twscreenname"] != null)
            {

                var service = new TwitterService(ConfigurationManager.AppSettings["twitter.appkey"].ToString(), ConfigurationManager.AppSettings["twitter.appsecret"].ToString());
                //service.AuthenticateWith(ConfigurationManager.AppSettings["twitter.accesstoken"].ToString(), ConfigurationManager.AppSettings["twitter.accesstokensecret"].ToString());
                service.AuthenticateWith(Session["twtoken"].ToString(), Session["twsecret"].ToString());
                ListTweetsOnUserTimelineOptions opt = new ListTweetsOnUserTimelineOptions { ScreenName = Session["twscreenname"].ToString(), Count = 5 };
                //IEnumerable<TwitterStatus> tweets = service.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { ScreenName = Session["twscreenname"].ToString(), Count = 5 });
                IEnumerable<TwitterStatus> tweets = service.ListTweetsOnUserTimeline(opt);
                if (tweets != null)
                {
                    foreach (var tweet in tweets)
                    {
                        twitter.InnerHtml = twitter.InnerHtml + "<li><img style=\"clear: both; float: left;\" src=\"" + tweet.Author.ProfileImageUrl + "\"/>";
                        twitter.InnerHtml = twitter.InnerHtml + "<p style=\"float: left;\" class=\"fblike\"><strong>@" + tweet.Author.ScreenName + "</strong><br>" + tweet.CreatedDate.ToString("MM/dd/yyyy") + "</p><br>";
                        twitter.InnerHtml = twitter.InnerHtml + ("<p style=\"clear: both;\"></p>");
                        twitter.InnerHtml = twitter.InnerHtml + "<p>" + tweet.Text + "</p>";
                        twitter.InnerHtml = twitter.InnerHtml + "</li><hr>";
                    }
                }
            }
            //appendlog(tweets.ToString());

            //}
        }
示例#13
0
        private List<TweetSharp.TwitterStatus> UpdateTweetTimeline()
        {
            var result = new List<TweetSharp.TwitterStatus>();

            recentTweetTimelineUpdateTime = DateTime.UtcNow;

            // Some of oAuth parameters is not set up
            if (String.IsNullOrEmpty(TwitterConsumerKey) || String.IsNullOrEmpty(TwitterConsumerSecret) ||
                String.IsNullOrEmpty(TwitterAccessToken) || String.IsNullOrEmpty(TwitterAccessTokenSecret))
            {
                return result;
            }

            var service = new TwitterService(TwitterConsumerKey, TwitterConsumerSecret);
            service.AuthenticateWith(TwitterAccessToken, TwitterAccessTokenSecret);

            var options = new ListTweetsOnUserTimelineOptions
            {
                Count = 10
            };

            var recentTweets = service.ListTweetsOnUserTimeline(options);
            if (recentTweets != null)
            {
                foreach (TwitterStatus s in recentTweets)
                {
                    result.Add(s);
                }
            }

            return result;
        }
        public static List<ModelTwitterFeedsDetails> GetTwitterTweets(string ScreenName)
        {
            ModelTwitterFeeds modelTwitterFeeds = new ModelTwitterFeeds();
            List<ModelTwitterFeedsDetails> lstModelTwitterFeedsDetail = new List<ModelTwitterFeedsDetails>();
            try
            {
                /*>>> API Creadentials <<<<////
                >> Under Informnation is creating from Personal Account Information API
                >> For any change in this credentials Login Account : [email protected]
                >> API Name : News Get Application
                >> Please don't change any word without permission from following API Admin*/
                string _consumerKey = "cvRCCaqLUlM9SyolFwYEQQ2uZ";
                string _consumerSecret = "sVvOgCPwuzXo37v4qjAriGbftwEefMC9xNadPQLTsoOkeqiJ8C";
                string _accessToken = "65042389-YQ3jLfP1RWu9Q7So9VAj3Rc3J9oMB0Suuv0jlioAN";
                string _accessTokenSecret = "yHMVHihkHAaCIOJi2M9WEOq4fpODY1a0hdS92J9OZEJEL";
                // API access Data End

                var service = new TwitterService(_consumerKey, _consumerSecret);
                //var tweets = new ListTweetsOnHomeTimelineOptions();
                service.AuthenticateWith(_accessToken, _accessTokenSecret);
                IAsyncResult result = service.BeginListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions());
                IEnumerable<TwitterStatus> tweets = service.EndListTweetsOnHomeTimeline(result);

                foreach (var tweet in tweets)
                {
                    if (tweets != null)
                    {
                        modelTwitterFeeds.FeedId = 0;
                        modelTwitterFeeds.UserPageId = 0;
                        modelTwitterFeeds.UserPageTitle = String.Empty;
                        modelTwitterFeeds.UserScreenName = String.Empty;
                        modelTwitterFeeds.UserPageLanguage = String.Empty;
                        modelTwitterFeeds.UserPageFollowers = 0;
                        modelTwitterFeeds.UserPageCoverImageURL = String.Empty;
                        modelTwitterFeeds.UserPageLogoImage = String.Empty;
                    }

                    var st1 = tweet.Text; //string
                    var st2 = tweet.Source; //string
                    var st3 = tweet.TextAsHtml; //string
                    var st4 = tweet.TextDecoded; //string
                    var st5 = tweet.RetweetedStatus; //TwitterStatus
                    var st6 = tweet.RetweetCount; //int
                    var st7 = tweet.RawSource; //string
                    var st8 = tweet.Place; //TwitterPlace
                    var st9 = tweet.Location; //TwitterGeoLocation
                    var st10 = tweet.Language; //string
                    var st11 = tweet.IsTruncated; //bool
                    var st12 = tweet.IsRetweeted; //bool
                    var st13 = tweet.IsPossiblySensitive; //bool is nullable
                    var st14 = tweet.IsFavorited; //bool
                    var st15 = tweet.InReplyToUserId; //long is nullable
                    var st16 = tweet.InReplyToStatusId; //long is nullable
                    var st17 = tweet.InReplyToScreenName; //string
                    var st18 = tweet.IdStr; //string
                    var st19 = tweet.Id; //long
                    var st20 = tweet.FavoriteCount; //int
                    var st21 = tweet.ExtendedEntities; //TwitterExtendedEntities
                    var st22 = tweet.Entities; //TwitterEntities
                    var st23 = tweet.CreatedDate; //DateTime
                    var st24 = tweet.Author; //ITweeter

                }

                //TwitterAccount user = new TwitterAccount.
                //TwitterUser twitterUser =
                //>>GET OTHER USER TIMELINE//BeginListTweetsOnHomeTimeline

                TwitterService t_service = new TwitterService(_consumerKey, _consumerSecret);
                t_service.AuthenticateWith(_accessToken, _accessTokenSecret);
                var t_options = new ListTweetsOnHomeTimelineOptions();
                t_options.ExcludeReplies = true;
                var t_tweets = t_service.ListTweetsOnHomeTimeline(t_options);
                //ListTweetsOnSpecifiedUserTimeline
                string ScreenNameBBCArabic = "BBCArabic";
                string ScreenNameCNNArabic = "cnnarabic";
                string ScreenName1 = "garbo_speaks";
                var User_OptionInit = new ListTweetsOnUserTimelineOptions { ScreenName = ScreenNameCNNArabic, Count = 200, ExcludeReplies = true };
                var User_Tweets = service.ListTweetsOnUserTimeline(User_OptionInit);

                string TweetText = String.Empty;

                foreach (var tweet in User_Tweets)
                {
                    var userDetail = tweet.User;
                    if (false)
                    {
                        var us1 = tweet.User.ContributorsEnabled; //bool?
                        var us2 = tweet.User.CreatedDate;
                        var us3 = tweet.User.Description;
                        var us4 = tweet.User.FavouritesCount;
                        var us5 = tweet.User.FollowersCount;
                        var us6 = tweet.User.FollowRequestSent;
                        var us7 = tweet.User.FriendsCount;
                        var us8 = tweet.User.Id;
                        var us9 = tweet.User.IsDefaultProfile;
                        var us10 = tweet.User.IsGeoEnabled;
                        var us11 = tweet.User.IsProfileBackgroundTiled;
                        var us12 = tweet.User.IsProtected;
                        var us13 = tweet.User.IsTranslator;
                        var us14 = tweet.User.IsVerified;
                        var us15 = tweet.User.Language;
                        var us16 = tweet.User.ListedCount;
                        var us17 = tweet.User.Location;
                        var us18 = tweet.User.Name;
                        var us19 = tweet.User.ProfileBackgroundColor;
                        var us20 = tweet.User.ProfileBackgroundImageUrl;
                        var us21 = tweet.User.ProfileBackgroundImageUrlHttps;
                        var us22 = tweet.User.ProfileImageUrl;
                        var us23 = tweet.User.ProfileImageUrlHttps;
                        var us24 = tweet.User.ProfileLinkColor;
                        var us25 = tweet.User.ProfileSidebarBorderColor;
                        var us26 = tweet.User.ProfileSidebarFillColor;
                        var us27 = tweet.User.ProfileTextColor;
                        var us28 = tweet.User.RawSource;
                        var us29 = tweet.User.ScreenName;
                        var us30 = tweet.User.Status;
                        var us31 = tweet.User.StatusesCount;
                        var us32 = tweet.User.TimeZone;
                        var us33 = tweet.User.Url;
                        var us34 = tweet.User.UtcOffset;
                    }

                    var st1 = tweet.Text.ToSafeString(); //string
                    TweetText = tweet.Text;
                    var st2 = tweet.Source; //string
                    var st3 = tweet.TextAsHtml; //string
                    var st4 = tweet.TextDecoded; //string
                    var st5 = tweet.RetweetedStatus; //TwitterStatus
                    var st6 = tweet.RetweetCount; //int
                    var st7 = tweet.RawSource; //string
                    var st8 = tweet.Place; //TwitterPlace
                    var st9 = tweet.Location; //TwitterGeoLocation
                    var st10 = tweet.Language; //string
                    var st11 = tweet.IsTruncated; //bool
                    var st12 = tweet.IsRetweeted; //bool
                    var st13 = tweet.IsPossiblySensitive; //bool is nullable
                    var st14 = tweet.IsFavorited; //bool
                    var st15 = tweet.InReplyToUserId; //long is nullable
                    var st16 = tweet.InReplyToStatusId; //long is nullable
                    var st17 = tweet.InReplyToScreenName; //string
                    var st18 = tweet.IdStr; //string
                    var st19 = tweet.Id; //long
                    var st20 = tweet.FavoriteCount; //int
                    var st21 = tweet.ExtendedEntities; //TwitterExtendedEntities
                    var st22 = tweet.Entities; //TwitterEntities
                    var twitterEntities = new TwitterEntities();
                    twitterEntities = st22;
                    IList<TwitterUrl> twitterUrl = twitterEntities.Urls; //List<TwitterUrl>
                    foreach (var url in twitterUrl)
                    {
                        var url1 = url.DisplayUrl; //string
                        var url2 = url.EndIndex; //int
                        var url3 = url.EntityType; //TwitterEntityType
                        var entityType = url3;
                        //4 Entity Types are Defined
                        //TwitterEntityType.HashTag; //0
                        //TwitterEntityType.Mention; //1
                        //TwitterEntityType.Url; //2
                        //TwitterEntityType.Media; //3

                        var url4 = url.ExpandedValue; //string
                        var url5 = url.Indices; //IList<int>
                        var url6 = url.StartIndex; //int
                        var url7 = url.Value; //string
                        TweetText = TweetText.Trim().Replace(url.Value, String.Empty).Trim();
                    }

                    IList<TwitterMention> twitterMention = twitterEntities.Mentions; //List<TwitterMention>
                    foreach (var mention in twitterMention)
                    {
                        var url1 = mention.EndIndex; //int
                        var url2 = mention.EntityType; //int
                        var entityType = url2;

                        //4 Entity Types are Defined
                        //TwitterEntityType.HashTag; //0
                        //TwitterEntityType.Mention; //1
                        //TwitterEntityType.Url; //2
                        //TwitterEntityType.Media; //3

                        var url3 = mention.Id; //long
                        var url4 = mention.Indices; //IList<int>
                        var url5 = mention.Name; //string
                        var url6 = mention.ScreenName; //string
                        var url7 = mention.StartIndex; //int
                    }
                    IList<TwitterMedia> twitterMedia = twitterEntities.Media; //List<TwitterMedia>
                    foreach (var media in twitterMedia)
                    {
                        var media1 = media.DisplayUrl; //string
                        var media2 = media.EndIndex; //int
                        var media3 = media.EntityType; //TwitterEntity
                        var media4 = media.ExpandedUrl; //string
                        var media5 = media.Id; //long
                        var media6 = media.IdAsString; //string
                        var media7 = media.Indices; //IList<int>
                        var media8 = media.MediaType; //TwitterMediaType
                        var twitterMediaType = media8;

                        /*Three Types of MediaType
                        TwitterMediaType.Photo; //0
                        TwitterMediaType.Video; //1
                        TwitterMediaType.AnimatedGif; //2
                        */

                        var media9 = media.MediaUrl; //string
                        var media10 = media.MediaUrlHttps; //string
                        //var FeedImageURLhttp  = media.MediaUrl; for Http Image
                        //var FeedImageURLhttps  =  media.MediaUrlHttps; for Https Image
                        var media11 = media.Sizes; //TwitterMediaSizes
                        var twitterMediaSizes = media11;
                        //media11.Large
                        //media11.Medium
                        //media11.Small
                        //media11.Thumb
                        var media12 = media.StartIndex; //int
                        var media13 = media.Url; //string

                        TweetText = TweetText.Trim().Replace(media.Url, String.Empty).Trim();
                    }
                    IList<TwitterHashTag> twitterHashTag = twitterEntities.HashTags; //List<TwitterHashTag>
                    foreach (var hashTag in twitterHashTag)
                    {
                        var ht1 = hashTag.EndIndex;
                        var ht2 = hashTag.EntityType;
                        var ht3 = hashTag.Indices;
                        var ht4 = hashTag.StartIndex;
                        var ht5 = hashTag.Text;
                        // hashTagText for refine Tweet Text
                        TweetText = TweetText.Trim().Replace("#" + hashTag.Text, string.Empty).Trim();
                    }
                    TweetText = TweetText.Replace("\n", String.Empty).Trim();
                    var st23 = tweet.CreatedDate; //DateTime
                    var st24 = tweet.Author; //ITweeter

                    var ProfileImageURL = st24.ProfileImageUrl;
                    var ss = st24.RawSource;
                    var screenName = st24.ScreenName;

                }
                return lstModelTwitterFeedsDetail;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        public static void GetTwitterTweetsWithDetails(TwitterService service, double feedId, string LastMaxTweetPostedId, ModelFeed modelFeedScrapperPath, List<ModelFeedsDetailScrappingHelper> listScrappingHelper)
        {
            ModelTwitterFeeds modelTwitterFeeds = new ModelTwitterFeeds();
            ModelTwitterFeedsDetails modelTwitterFeedsDetail = new ModelTwitterFeedsDetails();
            ModelFeedMultimedia modelModelFeedMultimedia = new ModelFeedMultimedia();
            List<ModelFeedMultimedia> lstmodelModelFeedImage = new List<ModelFeedMultimedia>();
            List<ModelTwitterFeedsDetails> lstModelTwitterFeedsDetail = new List<ModelTwitterFeedsDetails>();
            BLLFeed objBLLFeed = new BLLFeed();

            string DetailPageURL = String.Empty;
            try
            {
                //TwitterAccount user = new TwitterAccount.
                //TwitterUser twitterUser =
                //>>GET OTHER USER TIMELINE//BeginListTweetsOnHomeTimeline

                var User_OptionInit = new ListTweetsOnUserTimelineOptions { ScreenName = modelFeedScrapperPath.FeedChannelName, Count = 20, ExcludeReplies = true };
                var User_Tweets = service.ListTweetsOnUserTimeline(User_OptionInit);
                /*
                var profilebanner = service.GetUserProfile(new GetUserProfileOptions() { IncludeEntities = true, SkipStatus = true });
                if (profilebanner != null)
                {
                    //profilebanner.ContributorsEnabled
                    //profilebanner.CreatedDate
                    modelTwitterFeeds.UserPageDesc = profilebanner.Description;
                    //profilebanner.FavouritesCount;
                    modelTwitterFeeds.UserPageFollowers = profilebanner.FollowersCount;
                    //profilebanner.FollowRequestSent;
                    //profilebanner.FriendsCount;
                    modelTwitterFeeds.UserPageId = profilebanner.Id;
                    //profilebanner.IsDefaultProfile;
                    //profilebanner.IsGeoEnabled;
                    //profilebanner.IsProfileBackgroundTiled;
                    //profilebanner.IsProtected;
                    //profilebanner.IsTranslator;
                    //profilebanner.IsVerified;
                    modelTwitterFeeds.UserPageLanguage = profilebanner.Language;
                    //profilebanner.ListedCount;
                    //profilebanner.Location;
                    modelTwitterFeeds.UserPageTitle = profilebanner.Name;
                    //profilebanner.ProfileBackgroundColor;
                    //profilebanner.ProfileBackgroundImageUrl;
                    //profilebanner.ProfileBackgroundImageUrlHttps;
                    modelTwitterFeeds.UserPageLogoImage = profilebanner.ProfileImageUrl;
                    //profilebanner.ProfileImageUrlHttps;
                    //profilebanner.ProfileLinkColor;
                    //profilebanner.ProfileSidebarBorderColor;
                    //profilebanner.ProfileSidebarFillColor;
                    //profilebanner.ProfileTextColor;
                    //profilebanner.RawSource;
                    modelTwitterFeeds.UserScreenName = profilebanner.ScreenName;
                    //profilebanner.Status;
                    //profilebanner.StatusesCount;
                    //profilebanner.TimeZone;

                    //JObject o = new JObject(new JProperty("Name", "John Smith"),new JProperty("BirthDate", new DateTime(1983, 3, 20)));
                    JObject obj = (JObject)JsonConvert.DeserializeObject(profilebanner.RawSource);
                    if (obj != null)
                    {
                        if (obj["user"]["profile_banner_url"] != null)
                        {
                            modelTwitterFeeds.UserPageCoverImageURL = (string)obj["user"]["profile_banner_url"];
                        }
                    }
                }
                  */
                string TweetText = String.Empty;
                int tweetCountFirstRun = 0;
                foreach (var tweet in User_Tweets)
                {
                    if (!String.IsNullOrEmpty(LastMaxTweetPostedId))
                    {
                        if (LastMaxTweetPostedId.ToLower().Trim() == tweet.IdStr.ToLower().Trim())
                        {
                            break;
                        }
                    }
                    modelTwitterFeedsDetail = new ModelTwitterFeedsDetails();
                    modelModelFeedMultimedia = new ModelFeedMultimedia();
                    var userDetail = tweet.User;
                    if (tweet != null)
                    {
                        if (tweetCountFirstRun == 0)
                        {
                            if (userDetail != null)
                            {
                                modelTwitterFeeds.FeedId = feedId;
                                modelTwitterFeeds.UserPageId = tweet.User.Id;
                                modelTwitterFeeds.UserPageTitle = tweet.User.Name;
                                modelTwitterFeeds.UserScreenName = tweet.User.ScreenName;
                                modelTwitterFeeds.UserPageDesc = tweet.User.Description;
                                modelTwitterFeeds.UserPageLanguage = tweet.User.Language;
                                modelTwitterFeeds.UserPageFollowers = tweet.User.FollowersCount;
                                //modelTwitterFeeds.UserPageCoverImageURL = tweet.User.ProfileBackgroundImageUrl;
                                modelTwitterFeeds.UserPageLogoImage = tweet.User.ProfileImageUrl;
                                //JObject o = new JObject(new JProperty("Name", "John Smith"),new JProperty("BirthDate", new DateTime(1983, 3, 20)));
                                JObject obj = (JObject)JsonConvert.DeserializeObject(tweet.RawSource);
                                if (obj != null)
                                {
                                    if (obj["user"]["profile_banner_url"] != null)
                                    {
                                        modelTwitterFeeds.UserPageCoverImageURL = (string)obj["user"]["profile_banner_url"];
                                    }
                                }
                            }
                            tweetCountFirstRun++;
                        }
                        var st1 = tweet.Text.ToSafeString(); //string
                        TweetText = tweet.Text;
                        //modelTwitterFeedsDetail.TwitterPageId;
                        modelTwitterFeedsDetail.FeedPostedtId = tweet.Id;
                        modelTwitterFeedsDetail.FeedText = String.Empty;
                        modelTwitterFeedsDetail.FeedLanguage = tweet.Language;
                        modelTwitterFeedsDetail.FeedPostDate = tweet.CreatedDate;

                        modelTwitterFeedsDetail.FeedTextDetail = "";

                        var st2 = tweet.Source; //string
                        var st3 = tweet.TextAsHtml; //string
                        var st4 = tweet.TextDecoded; //string
                        var st5 = tweet.RetweetedStatus; //TwitterStatus
                        var st6 = tweet.RetweetCount; //int
                        var st7 = tweet.RawSource; //string
                        var st8 = tweet.Place; //TwitterPlace
                        var st9 = tweet.Location; //TwitterGeoLocation
                        var st10 = tweet.Language; //string
                        var st11 = tweet.IsTruncated; //bool
                        var st12 = tweet.IsRetweeted; //bool
                        var st13 = tweet.IsPossiblySensitive; //bool is nullable
                        var st14 = tweet.IsFavorited; //bool
                        var st15 = tweet.InReplyToUserId; //long is nullable
                        var st16 = tweet.InReplyToStatusId; //long is nullable
                        var st17 = tweet.InReplyToScreenName; //string
                        var st18 = tweet.IdStr; //string
                        var st19 = tweet.Id; //long
                        var st20 = tweet.FavoriteCount; //int
                        var st21 = tweet.ExtendedEntities; //TwitterExtendedEntities
                        var st22 = tweet.Entities; //TwitterEntities
                        var twitterEntities = new TwitterEntities();
                        twitterEntities = tweet.Entities;
                        IList<TwitterUrl> twitterUrl = twitterEntities.Urls; //List<TwitterUrl>
                        if (twitterUrl != null && twitterUrl.Count > 0)
                        {
                            foreach (var url in twitterUrl)
                            {
                                var url1 = url.DisplayUrl; //string
                                var url2 = url.EndIndex; //int
                                var url3 = url.EntityType; //TwitterEntityType
                                var entityType = url3;
                                //4 Entity Types are Defined
                                //TwitterEntityType.HashTag; //0
                                //TwitterEntityType.Mention; //1
                                //TwitterEntityType.Url; //2
                                //TwitterEntityType.Media; //3

                                var url4 = url.ExpandedValue; //string
                                var url5 = url.Indices; //IList<int>
                                var url6 = url.StartIndex; //int
                                var url7 = url.Value; //string

                                //MODEL DATA //Tweet Detail Page URL
                                if (!String.IsNullOrEmpty(url.ExpandedValue))
                                {
                                    modelTwitterFeedsDetail.FeedDetailPageURL = url.ExpandedValue.Trim();
                                }
                                else if (!String.IsNullOrEmpty(url.Value))
                                {
                                    if (String.IsNullOrEmpty(modelTwitterFeedsDetail.FeedDetailPageURL))
                                    {
                                        modelTwitterFeedsDetail.FeedDetailPageURL = url.Value.Trim();
                                    }
                                }
                                TweetText = TweetText.Trim().Replace(url.Value, String.Empty).Trim();
                            }
                        }
                        IList<TwitterMedia> twitterMedia = twitterEntities.Media; //List<TwitterMedia>
                        foreach (var media in twitterMedia)
                        {
                            var media1 = media.DisplayUrl; //string
                            var media2 = media.EndIndex; //int
                            var media3 = media.EntityType; //TwitterEntity
                            var media4 = media.ExpandedUrl; //string
                            var media5 = media.Id; //long
                            var media6 = media.IdAsString; //string
                            var media7 = media.Indices; //IList<int>
                            var media8 = media.MediaType; //TwitterMediaType
                            var twitterMediaType = media8;

                            /*Three Types of MediaType
                            TwitterMediaType.Photo; //0
                            TwitterMediaType.Video; //1
                            TwitterMediaType.AnimatedGif; //2
                            */

                            var media9 = media.MediaUrl; //string
                            var media10 = media.MediaUrlHttps; //string
                            //var FeedImageURLhttp  = media.MediaUrl; for Http Image
                            //var FeedImageURLhttps  =  media.MediaUrlHttps; for Https Image
                            var media11 = media.Sizes; //TwitterMediaSizes
                            var twitterMediaSizes = media11;
                            //media11.Large
                            //media11.Medium
                            //media11.Small
                            //media11.Thumb
                            var media12 = media.StartIndex; //int
                            var media13 = media.Url; //string
                            //MODEL DATA
                            string tweetMultimediaURL = !String.IsNullOrEmpty(media.Url.Trim()) ? media.Url.Trim() : String.Empty;
                            TweetText = TweetText.Trim().Replace(media.Url, String.Empty).Trim();
                            if (!String.IsNullOrEmpty(tweetMultimediaURL))
                            {
                                modelModelFeedMultimedia.MultiMediaURL = tweetMultimediaURL;
                                modelModelFeedMultimedia.MultiMediaType = Convert.ToInt32(media.MediaType);
                                //Add model object to list
                                //lstmodelModelFeedImage.Add(modelModelFeedMultimedia);
                                modelTwitterFeedsDetail.FeedMultimediaList.Add(modelModelFeedMultimedia);
                            }

                        }
                        IList<TwitterHashTag> twitterHashTag = twitterEntities.HashTags; //List<TwitterHashTag>
                        foreach (var hashTag in twitterHashTag)
                        {
                            var ht1 = hashTag.EndIndex;
                            var ht2 = hashTag.EntityType;
                            var ht3 = hashTag.Indices;
                            var ht4 = hashTag.StartIndex;
                            var ht5 = hashTag.Text;
                            // hashTagText for refine Tweet Text
                            TweetText = TweetText.Trim().Replace("#" + hashTag.Text, string.Empty).Trim();
                        }
                        TweetText = TweetText.Replace("\n", String.Empty).Trim();
                        var st23 = tweet.CreatedDate; //DateTime
                        var st24 = tweet.Author; //ITweeter

                        var ProfileImageURL = st24.ProfileImageUrl;
                        var ss = st24.RawSource;
                        var screenName = st24.ScreenName;
                        modelTwitterFeedsDetail.FeedText = TweetText;

                        //string DetailPageSelector = "div.story-body__inner p:not(:first-of-type)";
                        if (!String.IsNullOrEmpty(modelTwitterFeedsDetail.FeedDetailPageURL))
                        {
                            Uri DetailPageURI = new Uri(modelTwitterFeedsDetail.FeedDetailPageURL);
                            string DetailPageTextSelector = String.Empty;
                            string DetailPageImageSelector = String.Empty;
                            ModelFeedsDetailScrappingHelper rowDetailHelper = listScrappingHelper.Where(m => m.HostName.Contains(DetailPageURI.Host.Trim().ToLower())).FirstOrDefault();
                            if (rowDetailHelper != null)
                            {
                                DetailPageTextSelector = rowDetailHelper.DetailPagePath;
                                DetailPageImageSelector = rowDetailHelper.DetailPageImagePath;
                            }
                            /*
                            if (DetailPageURI.Host.Trim().ToLower().Contains("cnn"))
                            {
                                //bbc.com Text Details= //div[@class='story-body'] //p[position()>=1]
                                //bbc.com img = //div[@class='story-body__inner'] //img[@class='js-image-replace']
                                //cnn = ////p[@dir='RTL']js-image-replace
                                DetailPageTextSelector = "//div[contains(@class, 'article-left')] //p";
                                DetailPageImageSelector = "//div[contains(@class, 'gallery-big-images')] //img";
                            }
                            else if (DetailPageURI.Host.Trim().ToLower().Contains("soundcloud"))
                            {
                                DetailPageTextSelector = "//div[contains(@class, 'sc-type-small')] //p";
                                DetailPageImageSelector = "//div[@class='article-left'] //p";
                            }
                             */
                            HtmlDocument requestedDoc = ScrapeDetailfromPage(DetailPageURI.AbsoluteUri);
                            if (requestedDoc != null)
                            {
                                //if Details Page Selector Text not found then not send request
                                if (!String.IsNullOrEmpty(DetailPageTextSelector))
                                {
                                    string detailTextFromURL = ScrapeTextfromDetailPage(requestedDoc, DetailPageTextSelector);
                                    modelTwitterFeedsDetail.FeedTextDetail = detailTextFromURL;
                                }
                                //if default twitter post not have any multimedia type then
                                if (modelTwitterFeedsDetail.FeedMultimediaList.Count <= 0)
                                {
                                    //if Details Page Selector Image not found then not send request
                                    if (!String.IsNullOrEmpty(DetailPageImageSelector))
                                    {
                                        modelTwitterFeedsDetail.FeedMultimediaList = ScrapeImageDetailfromPage(requestedDoc, DetailPageImageSelector);
                                        //if details page not found on detected tag & Tweet having Image and Embeded Video on Details page
                                        // Then we make a new request to scrape twitter create image from sperate static created request
                                        if (modelTwitterFeedsDetail.FeedMultimediaList.Count <= 0)
                                        {
                                            //Sample URI for Video Image get://https://twitter.com/cnnarabic/status/678548429530906624
                                            //https://twitter.com/i/cards/tfw/v1/678585688783257600?cardname=summary_large_image
                                            //https://twitter.com/i/cards/tfw/v1/678585688783257600
                                            //string StaticImageURI = "https://twitter.com/" + modelTwitterFeeds.UserScreenName.Trim() + "//status/" + modelTwitterFeedsDetail.FeedPostId;
                                            string StaticImageURI = "https://twitter.com/i/cards/tfw/v1/" + tweet.Id;
                                            HtmlDocument VideoImageRequestedDoc = ScrapeDetailfromPage(StaticImageURI);
                                            string staticImageSelector = "//div[contains(@class, 'SummaryCard-image')] //img";
                                            modelTwitterFeedsDetail.FeedMultimediaList = ScrapeImageDetailfromPage(VideoImageRequestedDoc, staticImageSelector);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            modelTwitterFeedsDetail.FeedTextDetail = String.Empty;
                        }
                    }

                    lstModelTwitterFeedsDetail.Add(modelTwitterFeedsDetail);
                }
                modelTwitterFeeds.TwitterFeedDetails = lstModelTwitterFeedsDetail;
                objBLLFeed.InsertTwitterScrappedData(modelTwitterFeeds);
                //StartSafeScrappedData(modelTwitterFeeds, modelFeed);
            }

            catch (Exception ex)
            {

                throw ex;
            }
        }