public void ProcessDMCallback(TwitterAsyncResponse <TwitterDirectMessageCollection> ee) { TwitterDirectMessageCollection dms = ee.ResponseObject; if (dms == null) { return; } for (int i = dms.Count - 1; i >= 0; i--) { InsertDM(flowColumn, dms[i]); } }
private void prefetch(UserDatabase.User usr) { TwitterStatusCollection prefetch = usr.tweetStack.Twitter.GetTweets(); foreach (TwitterStatus status in prefetch) { TweetElement element = new TweetElement(this, status, usr, ImageCache.GetImage(status.User.Id, status.User.ProfileImageLocation)); element.polyOpacity = polygonOpacity; this.TweetElements.Items.Add(element); if (this.TweetElements.Items.Count > o3o.Properties.Settings.Default.amountOfTWeetsToDisplay) { TweetElement el = (TweetElement)this.TweetElements.Items[this.TweetElements.Items.Count - 1]; this.TweetElements.Items.Remove(el); el.Dispose(); } } TwitterStatusCollection prefetchMentions = usr.tweetStack.Twitter.GetMentions(); foreach (TwitterStatus status in prefetchMentions) { TweetElement element = new TweetElement(this, status, usr, ImageCache.GetImage(status.User.Id, status.User.ProfileImageLocation)); element.polyOpacity = polygonOpacity; this.TweetMentions.Items.Add(element); if (this.TweetElements.Items.Count > o3o.Properties.Settings.Default.amountOfTWeetsToDisplay) { TweetElement el = (TweetElement)this.TweetMentions.Items[this.TweetMentions.Items.Count - 1]; this.TweetMentions.Items.Remove(el); el.Dispose(); } } TwitterDirectMessageCollection fetchmessages = usr.tweetStack.Twitter.GetMessages(); foreach (TwitterDirectMessage message in fetchmessages) { DMElement element = new DMElement(this, message, usr, ImageCache.GetImage(message.SenderId, message.Sender.ProfileImageLocation)); element.polyOpacity = polygonOpacity; this.TweetMessages.Items.Add(element); if (this.TweetMessages.Items.Count > o3o.Properties.Settings.Default.amountOfTWeetsToDisplay) { DMElement el = (DMElement)this.TweetMessages.Items[this.TweetMessages.Items.Count - 1]; this.TweetMessages.Items.Remove(el); el.Dispose(); } } }
private void UpdateDirectMessages() { Trace.Call(); #if LOG4NET f_Logger.Debug("UpdateDirectMessages(): getting received direct messages from twitter..."); #endif var options = new DirectMessagesOptions() { Proxy = f_WebProxy, SinceStatusId = f_LastDirectMessageReceivedStatusID, Count = 50 }; var receivedTimeline = TwitterDirectMessage.DirectMessages( f_OAuthTokens, options ); #if LOG4NET f_Logger.Debug("UpdateDirectMessages(): done. New messages: " + (receivedTimeline == null ? 0 : receivedTimeline.Count)); #endif #if LOG4NET f_Logger.Debug("UpdateDirectMessages(): getting sent direct messages from twitter..."); #endif var sentOptions = new DirectMessagesSentOptions() { Proxy = f_WebProxy, SinceStatusId = f_LastDirectMessageSentStatusID, Count = 50 }; var sentTimeline = TwitterDirectMessage.DirectMessagesSent( f_OAuthTokens, sentOptions ); #if LOG4NET f_Logger.Debug("UpdateDirectMessages(): done. New messages: " + (sentTimeline == null ? 0 : sentTimeline.Count)); #endif var timeline = new TwitterDirectMessageCollection(); if (receivedTimeline != null) { foreach (TwitterDirectMessage msg in receivedTimeline) { timeline.Add(msg); } } if (sentTimeline != null) { foreach (TwitterDirectMessage msg in sentTimeline) { timeline.Add(msg); } } if (timeline.Count == 0) { // nothing to do return; } var sortedTimeline = SortTimeline(timeline); foreach (TwitterDirectMessage directMsg in sortedTimeline) { // if this isn't the first time a receive a direct message, // this is a new one! bool highlight = receivedTimeline.Contains(directMsg) && f_LastDirectMessageReceivedStatusID != 0; MessageModel msg = CreateMessage( directMsg.CreatedDate, directMsg.Sender, directMsg.Text, highlight ); Session.AddMessageToChat(f_DirectMessagesChat, msg); // if there is a tab open for this user put the message there too string userId; if (receivedTimeline.Contains(directMsg)) { // this is a received message userId = directMsg.SenderId.ToString(); } else { // this is a sent message userId = directMsg.RecipientId.ToString(); } ChatModel chat = Session.GetChat( userId, ChatType.Person, this ); if (chat != null) { Session.AddMessageToChat(chat, msg); } } if (receivedTimeline != null) { // first one is the newest foreach (TwitterDirectMessage msg in receivedTimeline) { f_LastDirectMessageReceivedStatusID = msg.Id; break; } } if (sentTimeline != null) { // first one is the newest foreach (TwitterDirectMessage msg in sentTimeline) { f_LastDirectMessageSentStatusID = msg.Id; break; } } }
private List<TwitterDirectMessage> SortTimeline(TwitterDirectMessageCollection timeline) { var sortedTimeline = new List<TwitterDirectMessage>(timeline.Count); foreach (TwitterDirectMessage msg in timeline) { sortedTimeline.Add(msg); } sortedTimeline.Sort( (a, b) => (a.CreatedDate.CompareTo(b.CreatedDate)) ); return sortedTimeline; }
public static TwitterDirectMessageCollection GetDms(string SenderScreenName) { var vUser = GetUser(SenderScreenName); if (vUser == null) { return(null); } TwitterDirectMessageCollection message = new TwitterDirectMessageCollection(); if (!Classes.AppSetting.UseProxy || string.IsNullOrWhiteSpace(vUser.ProxyAddress)) { OAuthTokens Oa = GetUserOAuthTokens(SenderScreenName); var v = Twitterizer.TwitterDirectMessage.DirectMessages(Oa); var v2 = Twitterizer.TwitterDirectMessage.DirectMessagesSent(Oa); if (v.Result == RequestResult.Success) { foreach (var item in v.ResponseObject) { message.Add(item); } } else if (v.Result == RequestResult.Unauthorized) { LoginUser(vUser.ScreenName, vUser.Name, vUser.ProxyAddress); return(GetDms(SenderScreenName)); } if (v2.Result == RequestResult.Success) { foreach (var item in v2.ResponseObject) { message.Add(item); } } else if (v.Result == RequestResult.Unauthorized) { LoginUser(vUser.ScreenName, vUser.Name, vUser.ProxyAddress); return(GetDms(SenderScreenName)); } //message = new TwitterDirectMessageCollection(); } else { var Proxy = vUser.ProxyAddress; var option = new OptionalProperties(); OAuthTokens Oa = GetUserOAuthTokens(SenderScreenName); DirectMessagesOptions op = new DirectMessagesOptions(); op.Proxy = GetProxy(Proxy); var v = Twitterizer.TwitterDirectMessage.DirectMessages(Oa, op); var v2 = Twitterizer.TwitterDirectMessage.DirectMessagesSent(Oa, new DirectMessagesSentOptions() { Proxy = op.Proxy }); if (v.Result == RequestResult.Success) { foreach (var item in v.ResponseObject) { message.Add(item); } } else if (v.Result == RequestResult.Unauthorized) { LoginUser(vUser.ScreenName, vUser.Name, vUser.ProxyAddress); return(GetDms(SenderScreenName)); } if (v2.Result == RequestResult.Success) { foreach (var item in v2.ResponseObject) { /*message.Add(new DMMessage() * { * DateSended = item.CreatedDate, * From = item.Sender.ScreenName, * Message = item.Text, * Title = item.Text, * To = item.RecipientScreenName * });*/ message.Add(item); } } else if (v.Result == RequestResult.Unauthorized) { LoginUser(vUser.ScreenName, vUser.Name, vUser.ProxyAddress); return(GetDms(SenderScreenName)); } //message = message.OrderByDescending(aa => aa.DateSended).ToList(); } return(message); }