Skip to content

Please note that the current code will automatically extract the following invitation code and replace it with your own. The users need to register. The address to modify is in the make_request method of the base_client.py file. #27

@Destiny99371

Description

@Destiny99371

['XeD8KYzhjUNc0Ng', '9Q2u13Gn4hQvZ24', 'uHN3c16e3YozUqi', 'UvNkSlZbMJEoJLx', 'weyxDAISFEtRC50', 'ICcFgDmL9BKSsUe', 'spEtu6Xq8HKZlEM', 'yhY7cPnPuLIPHIm', 'JvyNtE9OWVvD4fz', 'i6Faz0SqHRmjwpI', 'kgToAKeahTFOWch', 'rP3sGnKNoK0Pgsb', 'rR4b6F3Lc2dWSfi', 'LabdtMysKLWEzOc', 'i8kXTk4vOlfsmIz', 'm9e5Xqyn0uOjd3v', '1nHVpKldoTPKrIF', 'C1DQunBJxeNwlP5', 'cia20faguU69YS7', '1b3axiTCiz44eZC', 'fOL4rQC11UxNsem', 'acTw8y7mEspzTTB', '21FKnUhqycZ5zeM', 'Wblqkrk2VRHYthT', '1GFHgrEbpCESj5M', '2CHlzJYQHMFgKOE', 'dqd8SL9qR8j5o08', '05pnBnU9o3zOgUq', 'Yo0lJjWkRulpgGd', 'f3k3s7t4C7wWABL', '8imFbBNgbWL1KOK', 'z6SYTz6ePfgiSzW', 'wC1OGWTsWMK2Kr8', 'YjDb0ID3aIJO6WW', 'Ee0tX03wKjKuD0l', 'ffntrWVbrs6JWzR', 'c6o8ohQ0e3DEqpi', 'jtGwadK1vFf2SNh', 'Hor5KhWGCXX8rZG', 'WlTmdpbLjJ9MO5A', 'IYkg26nUdSj7XsN', 'T9OHMZKP8MGmt29', 'cwTlhQVgoTbccyt', '28dpqqagN2yl6zx', 'WjHaKq43ASEoB0z', 'm5JydiJhTBKkpTO', 'Icok9fIrmJLfsJI', 'jADE8C9zAddKYBb', 'RCaqf0Ol8uQ2foq', '2Lxn663P9a7FPWy', 'h638lmYFLbm6y3B', '1T9fb7tj7JFnKdN', 'PN0heC9Lst6b02B', '4ncJVmHt1megvcF', 'TtrVrCSkyf4z9G1', 'O0At38f0B5D0NH6', 'RrHqgiqXUcafEkz', 'wT63dKV2Xo0oWOg', '8scD49qjKYluuaz', 'cGa3ShXR8GEyNo0', 'VGPmBd5aZmLOVxj', 'o8DK1nEebkarh8R', 'rrCcjpc3WspONKl', 'LIcgNHM1a0AG968', 'DOCYRVDZkFFNQwf', 'kWNq3AQ4PikI8HT', '81WnHYeEz3eYUxz', '29ILTduShCbmX1v', 'dhbJ3CzDkU1cQej', 'jkmWymg9OaRAbnK', 'skh5K4KFWh0YJy8', 'hl7Aw3UC98o2DbN', 'tCABpZry2j04ctj', 'noG7ZfilLcD73xs', 'HiipRv3RKzaGVQV', '4ecL7rn7oOddAjt', 'Ufj93pK0temFa6W', 'qtnQEslSG32ZUjI', 'LkEUdxOF4o7YEdd', 'NGWxiXBZzJVX9hk', 'QMf5bvlA6nCd7hM', 'xSTvWOT715vIfXa', 'wPpXO0BNaemXoE5', 'SCyckIrIq9N6qAq', 'BNjmNv32egrPwGo', 'H1CVAkTmHNuQVgF', 'SspoKM7NuaHbNLq', 'sTxrKE6luHYrHX5', 'N01V0Xuh3VxdTfl', 'NPwSdE0ZYCuAGpz', 'tILWMchA2QEaSnR', 'D7s2El6U51oCRIg', 'eIdLKBQCiXs72TE', 'sty1yhvCAsoKboF', 'fAHj9MKkX6efoqZ', 'layGhSJMXQDb8S4', 'H4ii9lXspLwVwfA', 'DYXErxhZwMg9owu', '0n5BUwhhq33mh5o', 'eapY8CqB70KMgVX', 'wCb6VrdROWzT4v9', 'ivrn3vxxbpaSDhv', 'XmK8QP0XXSN9hjC', 'YiPwiK3qMOZkPkh', 'o7EX7ZEooAy02I1', 'IaIfztiTimNCg0x', 'G4WXy6fLzZHPbTZ', 'FGMLDebnuoIxZ

修改方式:
async def make_request(self, method: str, url: str, headers: dict = None, json_data: dict = None, max_retries: int = 3):
if not self.session:
await self.create_session(self.proxy, self.user_agent)

    json_data['referral_code'] = json_data['referral_code'][0]
    retry_count = 0
    while retry_count < max_retries:
        try:
            response = await self.session.request(
                method=method,
                url=url,
                headers=headers,
                json=json_data,
                timeout=30,
                proxy=self.proxy,
                impersonate="chrome110"
            )

            if response.status_code == 429:
                # Обработка ограничения частоты запросов
                retry_after = response.headers.get("Retry-After")
                retry_after = int(retry_after) if retry_after and retry_after.isdigit() else 5  # 5 секунд по умолчанию
                logger.warning(f"Rate limited. Retrying after {retry_after} seconds...")
                await asyncio.sleep(retry_after)
                retry_count += 1
                continue
                
            if response.status_code in [403, 400]:
                raise CloudflareException('Cloudflare protection detected')
            
            try:
                response_json = response.json()
            except json.JSONDecodeError:
                continue
                # logger.error(f"Failed to parse JSON response")

            if not response.ok:
                error_msg = response_json.get('error', 'Unknown error')
                logger.error(f"Request failed with status {response.status_code}: {error_msg}")
                raise Exception(f"Request failed: {error_msg}")
            
            return response_json

        except CloudflareException as e:
            # logger.error(f"Cloudflare error: {e}")
            raise

        except Exception as e:
            retry_count += 1
            if retry_count >= max_retries:
                logger.error(f"Max retries reached. Last error: {e}")
                raise
            
            logger.warning(f"Request failed (attempt {retry_count}/{max_retries}): {e}")
            await asyncio.sleep(2)  # Wait before retrying

The current configuration will cause registration to fail. You need to use the method #json_data['referral_code'] = json_data['referral_code'][0]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions