| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- """
- agent67.tools.browser_controller — 浏览器控制器
- Lambda: λ action_json. browser_op(action)
- """
- import json
- import platform
- import subprocess
- import webbrowser
- def control_browser(input_json: str) -> str:
- """
- 浏览器操作。
- 支持: open / search / chrome (AppleScript)
- """
- try:
- data = json.loads(input_json)
- except json.JSONDecodeError:
- text = input_json.strip()
- if text.startswith("http"):
- data = {"action": "open", "url": text}
- else:
- data = {"action": "search", "query": text}
- action = data.get("action", "open")
- try:
- if action == "open":
- url = data.get("url", "")
- if not url.startswith("http"):
- url = "https://" + url
- webbrowser.open(url)
- return f"🌐 已打开: {url}"
- elif action == "search":
- query = data.get("query", "")
- engine = data.get("engine", "google")
- urls = {
- "google": f"https://www.google.com/search?q={query}",
- "bing": f"https://www.bing.com/search?q={query}",
- "baidu": f"https://www.baidu.com/s?wd={query}",
- }
- url = urls.get(engine, urls["google"])
- webbrowser.open(url)
- return f"🔍 已搜索: {query} (使用 {engine})"
- elif action == "chrome" and platform.system() == "Darwin":
- script = data.get("script", "")
- result = subprocess.run(
- ["osascript", "-e", script],
- capture_output=True, text=True, timeout=10,
- )
- return result.stdout.strip() or "✅ AppleScript 已执行"
- else:
- return f"❌ 未知浏览器操作: {action}"
- except Exception as e:
- return f"❌ 浏览器错误: {e}"
|