예제 #1
0
        public void GetBlockids(long cursor = -1)
        {
            if (cursor == 0)
            {
                return;
            }
            PacketBlockIds packet = new PacketBlockIds();

            packet.cursor = cursor;
            RequestPacket <ClientBlockIds>(packet, responseInstence.BlockIds);
        }
예제 #2
0
        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);
                }
            }
        }