示例#1
0
            //패널이바뀔때마다 로딩해야되나 체크하고
            //로딩해야되면 로딩하는 방식
            //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);
            }
示例#2
0
        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);
        }
示例#3
0
            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);
            }
示例#4
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);
                }
            }
        }