コード例 #1
0
        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]);
            }
        }
コード例 #2
0
ファイル: MainWindow1.xaml.cs プロジェクト: zahndy/o3o
        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();
                }
            }
        }
コード例 #3
0
        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;
                }
            }
        }
コード例 #4
0
 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;
 }
コード例 #5
0
        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);
        }