mirror of
https://github.com/lanqian528/chat2api.git
synced 2026-06-13 21:02:46 +08:00
update pow
This commit is contained in:
parent
b4bef4ebc3
commit
228b77ec15
@ -10,7 +10,7 @@ from starlette.concurrency import run_in_threadpool
|
||||
from api.files import get_image_size, get_file_extension, determine_file_use_case
|
||||
from api.models import model_proxy
|
||||
from chatgpt.chatFormat import api_messages_to_chat, stream_response, wss_stream_response, format_not_stream_response
|
||||
from chatgpt.proofofWork import calc_proof_token, chat_requirements_body
|
||||
from chatgpt.proofofWork import calc_proof_token, chat_requirements_body, get_config
|
||||
from utils.Client import Client
|
||||
from utils.Logger import Logger
|
||||
from utils.config import proxy_url_list, chatgpt_base_url_list, arkose_token_url_list, history_disabled
|
||||
@ -64,7 +64,8 @@ class ChatService:
|
||||
if self.access_token:
|
||||
headers['Authorization'] = f'Bearer {self.access_token}'
|
||||
try:
|
||||
data = chat_requirements_body(self.user_agent)
|
||||
config = get_config(self.user_agent)
|
||||
data = chat_requirements_body(config)
|
||||
r = await self.s.post(url, headers=headers, json=data)
|
||||
if r.status_code == 200:
|
||||
resp = r.json()
|
||||
@ -103,7 +104,7 @@ class ChatService:
|
||||
if proofofwork_required:
|
||||
proofofwork_seed = proofofwork.get("seed")
|
||||
proofofwork_diff = proofofwork.get("difficulty")
|
||||
self.proof_token = await run_in_threadpool(calc_proof_token, proofofwork_seed, proofofwork_diff, self.user_agent)
|
||||
self.proof_token = await run_in_threadpool(calc_proof_token, proofofwork_seed, proofofwork_diff, config)
|
||||
|
||||
turnstile_required = turnstile.get('required')
|
||||
if turnstile_required:
|
||||
|
||||
@ -20,41 +20,34 @@ def get_config(user_agent):
|
||||
random.seed(int(time.time() * 1e9))
|
||||
core = random.choice(cores)
|
||||
screen = random.choice(screens)
|
||||
return [core + screen, get_parse_time(), 4294705152, 2, user_agent]
|
||||
config = [core + screen, get_parse_time(), 4294705152, 0, user_agent]
|
||||
config += [
|
||||
"https://cdn.oaistatic.com/_next/static/chunks/pages/_app-6179027f2701f350.js?dpl=61795df7b34494cdf55bd45e3973183b0a174e5b",
|
||||
"dpl=61795df7b34494cdf55bd45e3973183b0a174e5b",
|
||||
]
|
||||
config += ["en-US", "en-US,en"]
|
||||
return config
|
||||
|
||||
|
||||
def calc_proof_token(seed, diff, user_agent):
|
||||
if seed in answers:
|
||||
return answers[seed]
|
||||
|
||||
config = get_config(user_agent)
|
||||
diffLen = len(diff) // 2
|
||||
|
||||
def calc_proof_token(seed, diff, config):
|
||||
diff_len = len(diff) // 2
|
||||
for i in range(1000000):
|
||||
config[3] = i
|
||||
json_data = json.dumps(config).encode()
|
||||
base = base64.b64encode(json_data).decode()
|
||||
json_data = json.dumps(config, separators=(',', ':'), ensure_ascii=False)
|
||||
base = base64.b64encode(json_data.encode()).decode()
|
||||
hasher = hashlib.sha3_512()
|
||||
hasher.update((seed + base).encode())
|
||||
hash_value = hasher.digest()
|
||||
|
||||
if hash_value[:diffLen].hex() <= diff:
|
||||
if hash_value[:diff_len].hex() <= diff:
|
||||
result = "gAAAAAB" + base
|
||||
answers[seed] = result
|
||||
return result
|
||||
|
||||
return "gAAAAABwQ8Lk5FbGpA2NcR9dShT6gYjU7VxZ4D" + base64.b64encode(f'"{seed}"'.encode()).decode()
|
||||
|
||||
|
||||
def chat_requirements_body(user_agent):
|
||||
item_list = get_config(user_agent)
|
||||
item_list += [
|
||||
"https://cdn.oaistatic.com/_next/static/MukSHk9CtBFQqnH15__S9/_ssgManifest.js?dpl=6e44e4574f20cd7debafd92d9cf530cfaeb484b0",
|
||||
"dpl=6e44e4574f20cd7debafd92d9cf530cfaeb484b0",
|
||||
"en-US",
|
||||
"en-US,en"
|
||||
]
|
||||
json_data = json.dumps(item_list).encode()
|
||||
def chat_requirements_body(config):
|
||||
json_data = json.dumps(config).encode()
|
||||
base = base64.b64encode(json_data).decode()
|
||||
retObj = {'p': 'gAAAAAC' + base}
|
||||
return retObj
|
||||
|
||||
Loading…
Reference in New Issue
Block a user