mirror of
https://github.com/TheSmallHanCat/flow2api.git
synced 2026-06-02 04:41:36 +08:00
feat: 添加 personal 模式标签页配置和热更新支持
主要改动: - 添加 personal_max_resident_tabs 和 personal_idle_tab_ttl_seconds 配置项 - 支持在管理页面动态修改标签页数量和空闲超时 - 实现配置热更新,无需重启服务 - 优化浏览器启动参数,窗口不占用前台 - 增强日志输出,显示标签页使用情况 - 更新配置说明,明确标签页与 project_id 的关系 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1528,6 +1528,8 @@ async def update_captcha_config(
|
||||
browser_proxy_enabled = request.get("browser_proxy_enabled", False)
|
||||
browser_proxy_url = request.get("browser_proxy_url", "")
|
||||
browser_count = request.get("browser_count", 1)
|
||||
personal_max_resident_tabs = request.get("personal_max_resident_tabs")
|
||||
personal_idle_tab_ttl_seconds = request.get("personal_idle_tab_ttl_seconds")
|
||||
|
||||
# 验证浏览器代理URL格式
|
||||
if browser_proxy_enabled and browser_proxy_url:
|
||||
@@ -1567,9 +1569,14 @@ async def update_captcha_config(
|
||||
remote_browser_timeout=remote_browser_timeout,
|
||||
browser_proxy_enabled=browser_proxy_enabled,
|
||||
browser_proxy_url=browser_proxy_url if browser_proxy_enabled else None,
|
||||
browser_count=max(1, int(browser_count)) if browser_count else 1
|
||||
browser_count=max(1, int(browser_count)) if browser_count else 1,
|
||||
personal_max_resident_tabs=personal_max_resident_tabs,
|
||||
personal_idle_tab_ttl_seconds=personal_idle_tab_ttl_seconds
|
||||
)
|
||||
|
||||
# 🔥 Hot reload: sync database config to memory
|
||||
await db.reload_config_to_memory()
|
||||
|
||||
# 如果使用 browser 打码,热重载浏览器数量配置
|
||||
if captcha_method == "browser":
|
||||
try:
|
||||
@@ -1579,8 +1586,14 @@ async def update_captcha_config(
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# 🔥 Hot reload: sync database config to memory
|
||||
await db.reload_config_to_memory()
|
||||
# 如果使用 personal 打码,热重载配置
|
||||
if captcha_method == "personal":
|
||||
try:
|
||||
from ..services.browser_captcha_personal import BrowserCaptchaService
|
||||
service = await BrowserCaptchaService.get_instance(db)
|
||||
await service.reload_config()
|
||||
except Exception as e:
|
||||
print(f"[Admin] Personal 配置热更新失败: {e}")
|
||||
|
||||
return {"success": True, "message": "验证码配置更新成功"}
|
||||
|
||||
@@ -1604,7 +1617,9 @@ async def get_captcha_config(token: str = Depends(verify_admin_token)):
|
||||
"remote_browser_timeout": captcha_config.remote_browser_timeout,
|
||||
"browser_proxy_enabled": captcha_config.browser_proxy_enabled,
|
||||
"browser_proxy_url": captcha_config.browser_proxy_url or "",
|
||||
"browser_count": captcha_config.browser_count
|
||||
"browser_count": captcha_config.browser_count,
|
||||
"personal_max_resident_tabs": captcha_config.personal_max_resident_tabs,
|
||||
"personal_idle_tab_ttl_seconds": captcha_config.personal_idle_tab_ttl_seconds
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user