fastapi-deepchat / dsk /bypass.py
deepak191z's picture
Update dsk/bypass.py
0f297aa verified
# run_and_get_cookies.py
import subprocess
import os
import sys
import time
import requests
import json
def validate_cookies(cookies_data):
"""Validate that cf_clearance cookie is present and not empty"""
cookies = cookies_data.get('cookies', {})
return 'cf_clearance' in cookies and cookies['cf_clearance'].strip() != ''
def get_and_save_cookies(server_url, cookie_file_path, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.get(server_url)
response.raise_for_status()
cookies_data = response.json()
if not validate_cookies(cookies_data):
print(f"Attempt {attempt + 1}: cf_clearance cookie not found, retrying...")
time.sleep(5)
continue
cookies_to_save = {
'cookies': cookies_data.get('cookies', {}),
'user_agent': cookies_data.get('user_agent', '')
}
os.makedirs(os.path.dirname(cookie_file_path), exist_ok=True)
with open(cookie_file_path, 'w', encoding='utf-8') as f:
json.dump(cookies_to_save, f, indent=4, ensure_ascii=False)
print("Successfully obtained and saved cookies with cf_clearance!")
return True
except requests.exceptions.ConnectionError as e:
print(f"Connection error on attempt {attempt + 1}: {str(e)}")
if attempt < max_retries - 1:
time.sleep(5)
else:
print("Max retries reached. Failed to get valid cookies.")
return False
print("Failed to obtain valid cf_clearance cookie after all attempts")
return False
def run_server_background():
script_dir = os.path.dirname(os.path.abspath(__file__))
server_script = os.path.abspath(os.path.join(script_dir, "server.py"))
server_dir = os.path.dirname(server_script)
os.makedirs(server_dir, exist_ok=True)
try:
process = subprocess.Popen(
[sys.executable, server_script],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
cwd=server_dir,
start_new_session=True
)
return process
except Exception:
return None
if __name__ == "__main__":
print("Getting the cookies...")
server_process = run_server_background()
if server_process:
# Increase initial wait time to ensure server is fully started
time.sleep(10)
server_url = "http://0.0.0.0:7860/cookies?url=https://chat.deepseek.com"
cookie_file = "dsk/cookies.json"
# Increase max retries for more reliability
success = get_and_save_cookies(server_url, cookie_file, max_retries=5)
if not success:
print("Failed to obtain valid cookies.")
server_process.terminate()
sys.exit(1)
server_process.terminate()
else:
print("Failed to start server.")
sys.exit(1)