maltose1 commited on
Commit
d0ac2ed
·
verified ·
1 Parent(s): d498971

Upload 9 files

Browse files
Files changed (2) hide show
  1. Dockerfile +4 -0
  2. main.py +21 -4
Dockerfile CHANGED
@@ -33,6 +33,10 @@ RUN git clone https://github.com/Theyka/Turnstile-Solver.git /app/Turnstile-Solv
33
  # 为 Turnstile-Solver 安装依赖
34
  RUN pip install --no-cache-dir -r /app/Turnstile-Solver/requirements.txt
35
 
 
 
 
 
36
  # 为求解器安装浏览器
37
  # 这将下载并修补 chromium
38
  RUN python -m patchright install chromium
 
33
  # 为 Turnstile-Solver 安装依赖
34
  RUN pip install --no-cache-dir -r /app/Turnstile-Solver/requirements.txt
35
 
36
+ # 预下载 browserforge 所需的数据文件
37
+ # 这可以防止在运行时因权限问题导致下载失败
38
+ RUN python -c "from browserforge.fingerprints import FingerprintGenerator; from browserforge.headers import HeaderGenerator; print('Pre-downloaded browserforge data files.')"
39
+
40
  # 为求解器安装浏览器
41
  # 这将下载并修补 chromium
42
  RUN python -m patchright install chromium
main.py CHANGED
@@ -4,6 +4,7 @@ import time
4
  import uuid
5
  import threading
6
  from typing import Any, Dict, List, Optional, TypedDict, Union
 
7
 
8
  import requests
9
  import websocket
@@ -34,9 +35,21 @@ DEBUG_MODE = os.environ.get("DEBUG_MODE", "false").lower() == "true"
34
  REQUEST_TIMEOUT = 120.0 # 请求超时时间,秒
35
  HTTP_PROXY = os.environ.get("HTTP_PROXY")
36
  PROXIES = {"http": HTTP_PROXY, "https": HTTP_PROXY} if HTTP_PROXY else None
37
-
38
- if PROXIES:
39
- print(f"Using HTTP proxy: {HTTP_PROXY}")
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
 
42
  # Pydantic Models
@@ -462,7 +475,11 @@ def tenbin_stream_generator(model: str, prompt: str, session_id: str, execution_
462
  ws = None
463
  try:
464
  log_debug("Connecting to WebSocket...")
465
- ws = websocket.create_connection(url, header=headers)
 
 
 
 
466
  ws.send(json.dumps({"type": "connection_init"}))
467
  init_response = ws.recv()
468
  log_debug(f"WebSocket init response: {init_response}")
 
4
  import uuid
5
  import threading
6
  from typing import Any, Dict, List, Optional, TypedDict, Union
7
+ from urllib.parse import urlparse
8
 
9
  import requests
10
  import websocket
 
35
  REQUEST_TIMEOUT = 120.0 # 请求超时时间,秒
36
  HTTP_PROXY = os.environ.get("HTTP_PROXY")
37
  PROXIES = {"http": HTTP_PROXY, "https": HTTP_PROXY} if HTTP_PROXY else None
38
+ WEBSOCKET_PROXY_CONFIG = {}
39
+
40
+ if HTTP_PROXY:
41
+ print(f"Using HTTP/HTTPS proxy: {HTTP_PROXY}")
42
+ parsed_proxy_url = urlparse(HTTP_PROXY)
43
+ WEBSOCKET_PROXY_CONFIG = {
44
+ "http_proxy_host": parsed_proxy_url.hostname,
45
+ "http_proxy_port": parsed_proxy_url.port,
46
+ }
47
+ if parsed_proxy_url.username and parsed_proxy_url.password:
48
+ WEBSOCKET_PROXY_CONFIG["http_proxy_auth"] = (
49
+ parsed_proxy_url.username,
50
+ parsed_proxy_url.password,
51
+ )
52
+ print(f"Using WebSocket proxy config: {WEBSOCKET_PROXY_CONFIG}")
53
 
54
 
55
  # Pydantic Models
 
475
  ws = None
476
  try:
477
  log_debug("Connecting to WebSocket...")
478
+ ws = websocket.create_connection(
479
+ url,
480
+ header=headers,
481
+ **WEBSOCKET_PROXY_CONFIG
482
+ )
483
  ws.send(json.dumps({"type": "connection_init"}))
484
  init_response = ws.recv()
485
  log_debug(f"WebSocket init response: {init_response}")