v1.2.6 update pow

This commit is contained in:
LanQian 2024-06-15 15:02:11 +08:00
parent 249eebba13
commit dda3c58dd0
5 changed files with 130 additions and 21 deletions

View File

@ -37,7 +37,7 @@ jobs:
images: lanqian528/chat2api
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=v1.2.5
type=raw,value=v1.2.6
- name: Build and push
uses: docker/build-push-action@v5

View File

@ -22,7 +22,7 @@
## 功能
### 最新版 v1.2.5
### 最新版 v1.2.6
> 已完成
> - [x] 流式、非流式传输

View File

@ -23,7 +23,7 @@ from utils.config import proxy_url_list, chatgpt_base_url_list, arkose_token_url
class ChatService:
def __init__(self, origin_token=None):
self.user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0"
self.user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0"
self.req_token = get_req_token(origin_token)
self.chat_token = "gAAAAAB"
self.s = None

View File

@ -2,6 +2,7 @@ import hashlib
import json
import random
import time
import uuid
from datetime import datetime, timedelta, timezone
from html.parser import HTMLParser
@ -19,8 +20,109 @@ cached_dpl = ""
cached_time = 0
cached_require_proof = ""
navigator_key = ['hardwareConcurrency16', 'login[object NavigatorLogin]']
document_key = ['_reactListeningpa877jnmig', 'location']
navigator_key = [
"registerProtocolHandlerfunction registerProtocolHandler() { [native code] }",
"storage[object StorageManager]",
"locks[object LockManager]",
"appCodeNameMozilla",
"permissions[object Permissions]",
"appVersion5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
"sharefunction share() { [native code] }",
"webdriverfalse",
"managed[object NavigatorManagedData]",
"canSharefunction canShare() { [native code] }",
"vendorGoogle Inc.",
"vendorGoogle Inc.",
"mediaDevices[object MediaDevices]",
"vibratefunction vibrate() { [native code] }",
"storageBuckets[object StorageBucketManager]",
"mediaCapabilities[object MediaCapabilities]",
"getGamepadsfunction getGamepads() { [native code] }",
"bluetooth[object Bluetooth]",
"sharefunction share() { [native code] }",
"cookieEnabledtrue",
"virtualKeyboard[object VirtualKeyboard]",
"productGecko",
"mediaDevices[object MediaDevices]",
"canSharefunction canShare() { [native code] }",
"getGamepadsfunction getGamepads() { [native code] }",
"productGecko",
"xr[object XRSystem]",
"clipboard[object Clipboard]",
"storageBuckets[object StorageBucketManager]",
"unregisterProtocolHandlerfunction unregisterProtocolHandler() { [native code] }",
"productSub20030107",
"login[object NavigatorLogin]",
"vendorSub",
"login[object NavigatorLogin]",
"userAgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
"getInstalledRelatedAppsfunction getInstalledRelatedApps() { [native code] }",
"userAgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
"mediaDevices[object MediaDevices]",
"locks[object LockManager]",
"webkitGetUserMediafunction webkitGetUserMedia() { [native code] }",
"vendorGoogle Inc.",
"xr[object XRSystem]",
"mediaDevices[object MediaDevices]",
"virtualKeyboard[object VirtualKeyboard]",
"userAgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
"virtualKeyboard[object VirtualKeyboard]",
"appNameNetscape",
"storageBuckets[object StorageBucketManager]",
"presentation[object Presentation]",
"onLinetrue",
"mimeTypes[object MimeTypeArray]",
"credentials[object CredentialsContainer]",
"presentation[object Presentation]",
"getGamepadsfunction getGamepads() { [native code] }",
"vendorSub",
"virtualKeyboard[object VirtualKeyboard]",
"serviceWorker[object ServiceWorkerContainer]",
"xr[object XRSystem]",
"productGecko",
"keyboard[object Keyboard]",
"gpu[object GPU]",
"getInstalledRelatedAppsfunction getInstalledRelatedApps() { [native code] }",
"webkitPersistentStorage[object DeprecatedStorageQuota]",
"doNotTrack",
"clearAppBadgefunction clearAppBadge() { [native code] }",
"presentation[object Presentation]",
"serial[object Serial]",
"locks[object LockManager]",
"requestMIDIAccessfunction requestMIDIAccess() { [native code] }",
"locks[object LockManager]",
"requestMediaKeySystemAccessfunction requestMediaKeySystemAccess() { [native code] }",
"vendorGoogle Inc.",
"pdfViewerEnabledtrue",
"languagezh-CN",
"setAppBadgefunction setAppBadge() { [native code] }",
"geolocation[object Geolocation]",
"userAgentData[object NavigatorUAData]",
"mediaCapabilities[object MediaCapabilities]",
"requestMIDIAccessfunction requestMIDIAccess() { [native code] }",
"getUserMediafunction getUserMedia() { [native code] }",
"mediaDevices[object MediaDevices]",
"webkitPersistentStorage[object DeprecatedStorageQuota]",
"userAgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
"sendBeaconfunction sendBeacon() { [native code] }",
"hardwareConcurrency32",
"appVersion5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
"credentials[object CredentialsContainer]",
"storage[object StorageManager]",
"cookieEnabledtrue",
"pdfViewerEnabledtrue",
"windowControlsOverlay[object WindowControlsOverlay]",
"scheduling[object Scheduling]",
"pdfViewerEnabledtrue",
"hardwareConcurrency32",
"xr[object XRSystem]",
"userAgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
"webdriverfalse",
"getInstalledRelatedAppsfunction getInstalledRelatedApps() { [native code] }",
"getInstalledRelatedAppsfunction getInstalledRelatedApps() { [native code] }",
"bluetooth[object Bluetooth]"
]
document_key = ['_reactListeningo743lnnpvdg', 'location']
window_key = [
"0",
"window",
@ -284,8 +386,8 @@ class ScriptSrcParser(HTMLParser):
attrs_dict = dict(attrs)
if "src" in attrs_dict:
src = attrs_dict["src"]
cached_scripts.append(src)
if "dpl" in src:
cached_scripts.append(src)
cached_dpl = src[src.index("dpl"):]
cached_time = int(time.time())
@ -316,8 +418,8 @@ async def get_dpl(service):
def get_parse_time():
now = datetime.now(timezone(timedelta(hours=+9)))
return now.strftime(timeLayout) + " GMT+0900 (Japan Standard Time)"
now = datetime.now(timezone(timedelta(hours=-5)))
return now.strftime(timeLayout) + " GMT-0500 (Eastern Standard Time)"
def get_config(user_agent):
@ -332,11 +434,13 @@ def get_config(user_agent):
random.choice(cached_scripts),
cached_dpl,
"en-US",
"en-US,en",
"en-US,es-US,en,es",
0,
random.choice(navigator_key),
random.choice(document_key),
random.choice(window_key)
random.choice(window_key),
time.perf_counter() + random.random(),
str(uuid.uuid4()),
]
return config
@ -353,9 +457,9 @@ def generate_answer(seed, diff, config):
diff_len = len(diff)
seed_encoded = seed.encode()
static_config_part1 = (json.dumps(config[:3], separators=(',', ':'))[:-1] + ',').encode()
static_config_part2 = (',' + json.dumps(config[4:9], separators=(',', ':'))[1:-1] + ',').encode()
static_config_part3 = (',' + json.dumps(config[10:], separators=(',', ':'))[1:]).encode()
static_config_part1 = (json.dumps(config[:3], separators=(',', ':'), ensure_ascii=False)[:-1] + ',').encode()
static_config_part2 = (',' + json.dumps(config[4:9], separators=(',', ':'), ensure_ascii=False)[1:-1] + ',').encode()
static_config_part3 = (',' + json.dumps(config[10:], separators=(',', ':'), ensure_ascii=False)[1:]).encode()
target_diff = bytes.fromhex(diff)
@ -376,12 +480,17 @@ def get_requirements_token(config):
if __name__ == "__main__":
# cached_scripts.append(
# "https://cdn.oaistatic.com/_next/static/cXh69klOLzS0Gy2joLDRS/_ssgManifest.js?dpl=453ebaec0d44c2decab71692e1bfe39be35a24b3")
# cached_dpl = "453ebaec0d44c2decab71692e1bfe39be35a24b3"
# cached_time = int(time.time())
# for i in range(10):
# seed = format(random.random())
# diff = "000032"
# config = get_config("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome")
# answer = get_answer_token(seed, diff, config)
cached_scripts.append(
"https://cdn.oaistatic.com/_next/static/cXh69klOLzS0Gy2joLDRS/_ssgManifest.js?dpl=453ebaec0d44c2decab71692e1bfe39be35a24b3")
cached_dpl = "453ebaec0d44c2decab71692e1bfe39be35a24b3"
cached_time = int(time.time())
for i in range(10):
seed = format(random.random())
diff = "000032"
config = get_config("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome")
answer = get_answer_token(seed, diff, config)
cached_dpl = "dpl=453ebaec0d44c2decab71692e1bfe39be35a24b3"
config = get_config("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome")
get_requirements_token(config)

View File

@ -42,7 +42,7 @@ arkose_token_url_list = arkose_token_url.split(',') if arkose_token_url else []
proxy_url_list = proxy_url.split(',') if proxy_url else []
logger.info("-" * 60)
logger.info("Chat2Api v1.2.5 | https://github.com/lanqian528/chat2api")
logger.info("Chat2Api v1.2.6 | https://github.com/lanqian528/chat2api")
logger.info("-" * 60)
logger.info("Environment variables:")
logger.info("API_PREFIX: " + str(api_prefix))