//패널이바뀔때마다 로딩해야되나 체크하고 //로딩해야되면 로딩하는 방식 //screenName: 유저 아이디가 넘어옴 public void LoadUser(string screenName) { //이전에 로딩한 정보와 동일, 첫로딩 후 아이디를 저장하기에 자기 정보도 최초 로딩은 하게 됨 if (screenName == this.screenName) { return; } this.screenName = screenName; userList.Clear(); BasePacket parameter = null; if (epanel == eUserPanel.eFollower || epanel == eUserPanel.eUserFollwer) { PacketFollowerList param = new PacketFollowerList(); param.screen_name = screenName; parameter = param; } else { PacketFollowingList param = new PacketFollowingList(); param.screen_name = screenName; parameter = param; } ThreadPool.QueueUserWorkItem(LoadUser, parameter); }
public void GetFollwing(long id, long cursor = -1) { if (cursor == 0) { return; } PacketFollowingList packet = new PacketFollowingList(); packet.user_id = id; packet.count = 200; packet.cursor = cursor; RequestPacket <ClientUsers>(packet, responseInstence.Followlist); }
private void LoadMore() { if (nextCursor == 0) { return; } BasePacket parameter = null; if (epanel == eUserPanel.eFollower || epanel == eUserPanel.eUserFollwer) { PacketFollowerList param = new PacketFollowerList(); param.cursor = nextCursor.ToString(); parameter = param; } else { PacketFollowingList param = new PacketFollowingList(); param.cursor = nextCursor.ToString(); parameter = param; } ThreadPool.QueueUserWorkItem(LoadMore, parameter); }
public async void ResponseError(BasePacket packet, string json) { if (json == null) { return; } ClientAPIError error = JsonConvert.DeserializeObject <ClientAPIError>(json); if (error == null) { return; } if (error?.errors?.Count == 0) { return; } ///리밋 걸렸을 때 if (error.errors[0].code == 88) { if (packet.eresponse == eResponse.BLOCK_IDS) { await Task.Delay(TimeSpan.FromMinutes(1)); int? num = Task.CurrentId; PacketBlockIds bpacket = packet as PacketBlockIds; long cursor = -1; long.TryParse(bpacket.cursor.ToString(), out cursor); apiInstence.GetBlockids(cursor); } else if (packet.eresponse == eResponse.FOLLOWING_LIST) { await Task.Delay(TimeSpan.FromMinutes(1)); int?num = Task.CurrentId; PacketFollowingList fpacket = packet as PacketFollowingList; long cursor = -1; long.TryParse(fpacket.cursor.ToString(), out cursor); apiInstence.GetFollwing(DataInstence.userInfo.user.id, cursor); } } else if (error.errors[0].code == 408) { } if (error == null) { ShowMessageBox("원인 불명", "오류"); } else if (error.errors == null) { ShowMessageBox(json, "오류"); } else { if (error.errors.Count > 0) { string message = string.Empty; switch (error.errors[0].code) { case 32: ShowMessageBox("인증 오류. \r\n로그인 데이터를 초기화 합니다.\r\n다시 로그인 해 주세요.", "오류"); FileInstence.ClearAccountData(); ClearClient(); StartOAuthCertification(); break; case 34: message = "해당 유저는 없습니다."; break; case 44: message = "잘못 된 요청"; break; case 64: ShowMessageBox("계정이 일시 정지 되었습니다.", "오류"); break; case 87: ShowMessageBox("달새는 해당 동작을 할 수 없습니다.", "오류"); break; case 88: message = "불러오기 제한, 몇 분 뒤 시도해주세요."; break; case 89: ShowMessageBox("잘못되거나 만료 된 토큰. 지속될 경우 Data폴더에 Switter를 지운 후 시도해주세요", "오류"); break; case 130: case 131: message = "트위터 내부 오류"; break; case 135: ShowMessageBox("인증할 수 없습니다.", "오류"); break; case 136: ShowMessageBox("저런, 당신을 차단한 사람입니다.", "오류"); break; case 139: message = "이미 관심글에 등록 된 트윗입니다."; break; case 144: message = "삭제된 트윗입니다."; break; case 150: message = "상대방에게 쪽지를 보낼 수 없습니다."; break; case 151: message = "메시지를 보내는 중 에러가 발생했습니다"; break; case 179: message = "대화 트윗을 쓴 유저가 잠금 계정입니다."; break; case 185: ShowMessageBox("트윗 제한. 트잉여님 트윗 적당히 써주세요.", "오류"); break; case 187: message = "중복 트윗입니다. 같은 내용을 적지 말아주세요 :("; break; case 327: message = "이미 리트윗 한 트윗입니다."; break; case 323: ShowMessageBox("GIF와 이미지를 동시에 업로드 할 수 없습니다.", "오류"); break; case 324: ShowMessageBox("이미지 용량이 5mb를 넘어 업로드 할 수 없습니다.", "오류"); break; case 386: message = "트윗이 280자를 넘어 전송할 수 없습니다."; break; default: message = json; break; } if (string.IsNullOrEmpty(message)) { return; } window.AddMessage(message); } } }