返回提交历史
Modified
g4f/gui/server/website.py
+9
-7
XFEstudio/gpt4free
fix(gui): prevent Flask thread blocking on remote asset downloads
259b25d9
代码差异
1 个文件
+9
-7
@@ -8,12 +8,14 @@ from datetime import datetime
8
8
from urllib.parse import quote, unquote
9
9
from flask import send_from_directory, redirect, request
10
10
11
from ...image.copy_images import secure_filename
11
from ...files import secure_filename
12
12
from ...cookies import get_cookies_dir
13
13
from ...errors import VersionNotFoundError
14
14
from ...config import STATIC_URL, DOWNLOAD_URL, DIST_DIR, GITHUB_URL
15
15
from ... import version
16
16
17
_gui_session = requests.Session()
18
17
19
18
20
def redirect_home():
19
21
return redirect("/chat/")
@@ -64,17 +66,17 @@ def render(filename="home", download_url: str = GITHUB_URL):
64
66
os.makedirs(cache_dir, exist_ok=True)
65
67
if html is None:
66
68
try:
67
response = requests.get(f"{download_url}{filename}")
69
response = _gui_session.get(f"{download_url}{filename}", timeout=10)
68
70
response.raise_for_status()
69
71
except requests.exceptions.SSLError:
70
response = requests.get(f"{download_url}{filename}", verify=False)
72
response = _gui_session.get(f"{download_url}{filename}", timeout=10, verify=False)
71
73
response.raise_for_status()
72
74
except requests.RequestException:
73
75
try:
74
response = requests.get(f"{DOWNLOAD_URL}{filename}")
76
response = _gui_session.get(f"{DOWNLOAD_URL}{filename}", timeout=10)
75
77
response.raise_for_status()
76
78
except requests.exceptions.SSLError:
77
response = requests.get(f"{DOWNLOAD_URL}{filename}", verify=False)
79
response = _gui_session.get(f"{DOWNLOAD_URL}{filename}", timeout=10, verify=False)
78
80
response.raise_for_status()
79
81
except requests.RequestException:
80
82
found = None
@@ -505,11 +507,11 @@ class Website:
505
507
# Download and cache from GitHub
506
508
os.makedirs(os.path.dirname(safe_path), exist_ok=True)
507
509
try:
508
response = requests.get(f"{PLAYGROUND_URL}{filename}", timeout=10)
510
response = _gui_session.get(f"{PLAYGROUND_URL}{filename}", timeout=10)
509
511
response.raise_for_status()
510
512
except requests.exceptions.SSLError:
511
513
try:
512
response = requests.get(
514
response = _gui_session.get(
513
515
f"{PLAYGROUND_URL}{filename}", timeout=10, verify=False
514
516
)
515
517
response.raise_for_status()