XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

fix(gui): prevent Flask thread blocking on remote asset downloads

259b25d9
Anand Mall <anand@example.com>
提交于

代码差异

1 个文件 +9 -7
Modified g4f/gui/server/website.py +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()