Spaces:
BG5
/
Running

BG5 commited on
Commit
f366d38
·
verified ·
1 Parent(s): 62d9494

Update api.py

Browse files
Files changed (1) hide show
  1. api.py +11 -8
api.py CHANGED
@@ -257,9 +257,10 @@ async def open_browser(request: Request):
257
  ws_url = re.sub(r":\d+", "", ws_url)
258
  browser_info["webSocketDebuggerUrl"] = ws_url
259
  logger.info(f"Browser opened with ID: {browser_id}, Info: {browser_info}")
260
- logger.info(f'port: {port}, ws_url: {ws_url}')
261
- logger.info(f'port: {port}, ws_url: {ws_url}')
262
  BROWSERS[browser_id] = {"process": proc, "ws": ws_url, "port": port, "status": "open", "info": browser_info}
 
263
  return {"success": True, "msg": "success", "data": {"id": browser_id, "ws": ws_url}, "info": browser_info}
264
 
265
 
@@ -336,7 +337,7 @@ def get_browser_by_id(browser_id: str):
336
  return b
337
 
338
 
339
- async def find_browser_by_target_id(target_id: str):
340
  """
341
  根据 targetId 智能查找对应的浏览器实例
342
 
@@ -344,10 +345,12 @@ async def find_browser_by_target_id(target_id: str):
344
  2. 如果不是,查询所有浏览器实例的页面列表,找到匹配 target_id 的页面所在浏览器
345
  3. 如果找不到,返回第一个可用的浏览器实例
346
  """
347
- # 检查是否直接是 browser_id
348
- if target_id in BROWSERS:
349
- return BROWSERS[target_id]
350
-
 
 
351
  # 查询所有浏览器实例,找到匹配的页面
352
  for browser_id, browser in BROWSERS.items():
353
  if browser["status"] != "open":
@@ -416,7 +419,7 @@ async def cdp_native_ws_proxy(websocket: WebSocket, tab_type: str, target_id: st
416
  await websocket.close()
417
  return
418
  # 智能查找 target_id 对应的浏览器实例
419
- browser = await find_browser_by_target_id(target_id)
420
  if not browser:
421
  await websocket.close(code=1008, reason="无法找到有效的浏览器实例")
422
  return
 
257
  ws_url = re.sub(r":\d+", "", ws_url)
258
  browser_info["webSocketDebuggerUrl"] = ws_url
259
  logger.info(f"Browser opened with ID: {browser_id}, Info: {browser_info}")
260
+ logger.info(f'port1111: {port}, ws_url: {ws_url}')
261
+
262
  BROWSERS[browser_id] = {"process": proc, "ws": ws_url, "port": port, "status": "open", "info": browser_info}
263
+ logger.info(f'port2222: {port}, ws_url: {ws_url}')
264
  return {"success": True, "msg": "success", "data": {"id": browser_id, "ws": ws_url}, "info": browser_info}
265
 
266
 
 
337
  return b
338
 
339
 
340
+ async def find_browser_by_target_id(tab_type,target_id: str):
341
  """
342
  根据 targetId 智能查找对应的浏览器实例
343
 
 
345
  2. 如果不是,查询所有浏览器实例的页面列表,找到匹配 target_id 的页面所在浏览器
346
  3. 如果找不到,返回第一个可用的浏览器实例
347
  """
348
+ if tab_type == "browser":
349
+ # 查询所有浏览器实例,找到匹配的页面
350
+ for browser_id, browser in BROWSERS.items():
351
+ ws_url = browser.get("info", {}).get("webSocketDebuggerUrl", "")
352
+ if target_id in ws_url:
353
+ return browser
354
  # 查询所有浏览器实例,找到匹配的页面
355
  for browser_id, browser in BROWSERS.items():
356
  if browser["status"] != "open":
 
419
  await websocket.close()
420
  return
421
  # 智能查找 target_id 对应的浏览器实例
422
+ browser = await find_browser_by_target_id(tab_type,target_id)
423
  if not browser:
424
  await websocket.close(code=1008, reason="无法找到有效的浏览器实例")
425
  return