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