MCPcopy Create free account
hub / github.com/TheSmallHanCat/flow2api / update_captcha_config

Function update_captcha_config

src/api/admin.py:1776–1887  ·  view source on GitHub ↗

Update captcha configuration

(
    request: dict,
    token: str = Depends(verify_admin_token)
)

Source from the content-addressed store, hash-verified

1774
1775@router.post("/api/captcha/config")
1776async def update_captcha_config(
1777 request: dict,
1778 token: str = Depends(verify_admin_token)
1779):
1780 """Update captcha configuration"""
1781 captcha_method = request.get("captcha_method")
1782 yescaptcha_api_key = request.get("yescaptcha_api_key")
1783 yescaptcha_base_url = request.get("yescaptcha_base_url")
1784 yescaptcha_task_type = normalize_yescaptcha_task_type(request.get("yescaptcha_task_type"))
1785 capmonster_api_key = request.get("capmonster_api_key")
1786 capmonster_base_url = request.get("capmonster_base_url")
1787 ezcaptcha_api_key = request.get("ezcaptcha_api_key")
1788 ezcaptcha_base_url = request.get("ezcaptcha_base_url")
1789 capsolver_api_key = request.get("capsolver_api_key")
1790 capsolver_base_url = request.get("capsolver_base_url")
1791 remote_browser_base_url = request.get("remote_browser_base_url")
1792 remote_browser_api_key = request.get("remote_browser_api_key")
1793 remote_browser_timeout = request.get("remote_browser_timeout", 60)
1794 browser_proxy_enabled = request.get("browser_proxy_enabled", False)
1795 browser_proxy_url = request.get("browser_proxy_url", "")
1796 browser_count = request.get("browser_count", 1)
1797 personal_project_pool_size = request.get("personal_project_pool_size")
1798 personal_max_resident_tabs = request.get("personal_max_resident_tabs")
1799 browser_personal_fresh_restart_every_n_solves = request.get(
1800 "browser_personal_fresh_restart_every_n_solves",
1801 10,
1802 )
1803 personal_idle_tab_ttl_seconds = request.get("personal_idle_tab_ttl_seconds")
1804
1805 # 验证浏览器代理URL格式
1806 if browser_proxy_enabled and browser_proxy_url:
1807 is_valid, error_msg = _validate_browser_proxy_url_local(browser_proxy_url)
1808 if not is_valid:
1809 return {"success": False, "message": error_msg}
1810
1811 if remote_browser_base_url:
1812 try:
1813 remote_browser_base_url = _normalize_http_base_url(remote_browser_base_url)
1814 except RuntimeError as e:
1815 return {"success": False, "message": str(e)}
1816
1817 try:
1818 remote_browser_timeout = max(5, int(remote_browser_timeout or 60))
1819 except Exception:
1820 return {"success": False, "message": "远程打码超时时间必须是整数秒"}
1821 try:
1822 browser_count = max(1, min(20, int(browser_count or 1)))
1823 except Exception:
1824 return {"success": False, "message": "浏览器实例数量必须是整数"}
1825 try:
1826 browser_personal_fresh_restart_every_n_solves = max(
1827 0,
1828 int(browser_personal_fresh_restart_every_n_solves if browser_personal_fresh_restart_every_n_solves is not None else 10),
1829 )
1830 except Exception:
1831 return {"success": False, "message": "重置码数必须是整数,0 表示禁用"}
1832
1833 if captcha_method == "remote_browser":

Callers

nothing calls this directly

Tested by

no test coverage detected