// 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); }
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(); }
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(); } }
/// <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); }
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); }
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; }
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(); }
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()); //} }
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; } }