private void LoadFavoriteTweet(object obj)
        {
            PacketFavoritesList parameter = new PacketFavoritesList();

            parameter.count = 200.ToString();
            int            loadFavCount = 0;
            DeleChangeText dele         = new DeleChangeText(StateTextChange);

            for (int j = 0; j < 15; j++)
            {
                string json = WebInstence.SyncRequest(parameter);
                if (json.Length == 0)
                {
                    MessageBox.Show("불러오기 제한! 몇 분 뒤 다시 시도해주세요(최대 15분)", "오류", MessageBoxButton.OK, MessageBoxImage.Warning);
                    break;
                }
                List <ClientTweet> listTemp = JsonConvert.DeserializeObject <List <ClientTweet> >(json);
                loadFavCount += listTemp.Count;
                Application.Current.Dispatcher.BeginInvoke(dele, new object[] { $"불러오는중: {loadFavCount}/{countFav}" });
                for (int i = 0; i < listTemp.Count; i++)
                {
                    listTemp[i].Init();
                    if (listTemp[i].isMedia)
                    {
                        if (listTemp[i].dicPhoto.Count == 1)                        //media가 있는데 photo일 경우에만 저장
                        {
                            foreach (ClientMedia item in listTemp[i].dicPhoto.Values)
                            {
                                if (item.type == "photo")
                                {
                                    listTweet.Add(listTemp[i]);
                                }
                                break;
                            }
                        }
                        else
                        {
                            listTweet.Add(listTemp[i]);
                        }
                    }
                }
                if (loadFavCount >= countFav)
                {
                    break;
                }
                parameter.max_id = listTemp[listTemp.Count - 1].id;
            }
            Application.Current.Dispatcher.BeginInvoke(dele, new object[] { "불러오기 완료" });
            NextState();
        }
Пример #2
0
        public void LoadTweetListMore(eTweetPanel panel, long cursor = -1, string userid = "")
        {
            BasePacket packet = null;
            Action <List <ClientTweet> > callback = null;

            if (panel == eTweetPanel.eHome)
            {
                PacketHomeTimeLine pack = new PacketHomeTimeLine();
                pack.max_id = cursor;
                pack.count  = 200;
                packet      = pack;
                callback    = responseInstence.Home;
            }
            else if (panel == eTweetPanel.eMention)
            {
                PacketMentionTimeLine pack = new PacketMentionTimeLine();
                pack.max_id = cursor;
                packet      = pack;
                callback    = responseInstence.Mention;
            }
            else if (panel == eTweetPanel.eFavorite)
            {
                PacketFavoritesList pack = new PacketFavoritesList();
                pack.max_id = cursor;
                packet      = pack;
                callback    = responseInstence.FavoriteTweet;
            }
            else if (panel == eTweetPanel.eUser)
            {
                PacketUserTimeLine pack = new PacketUserTimeLine();
                pack.max_id      = cursor;
                pack.screen_name = userid;
                packet           = pack;
                callback         = responseInstence.UserTweet;
            }
            else if (panel == eTweetPanel.eUserMedia)
            {
                PacketUserTimeLine pack = new PacketUserTimeLine();
                pack.count       = 200.ToString();
                pack.screen_name = userid;
                packet           = pack;
                callback         = responseInstence.UserTweetMedia;
            }
            if (packet != null && callback != null)
            {
                RequestPacket(packet, callback);
            }
        }