Spaces:
Runtime error
Runtime error
from pathlib import Path | |
from uuid import uuid4 | |
import requests | |
from PIL import Image | |
from .base import BaseAnthropicTool, ToolError | |
from io import BytesIO | |
OUTPUT_DIR = "./tmp/outputs" | |
def get_screenshot(resize: bool = False, target_width: int = 1920, target_height: int = 1080): | |
"""Capture screenshot by requesting from HTTP endpoint - returns native resolution unless resized""" | |
output_dir = Path(OUTPUT_DIR) | |
output_dir.mkdir(parents=True, exist_ok=True) | |
path = output_dir / f"screenshot_{uuid4().hex}.png" | |
try: | |
response = requests.get('http://localhost:5000/screenshot') | |
if response.status_code != 200: | |
raise ToolError(f"Failed to capture screenshot: HTTP {response.status_code}") | |
# (1280, 800) | |
screenshot = Image.open(BytesIO(response.content)) | |
if resize and screenshot.size != (target_width, target_height): | |
screenshot = screenshot.resize((target_width, target_height)) | |
screenshot.save(path) | |
return screenshot, path | |
except Exception as e: | |
raise ToolError(f"Failed to capture screenshot: {str(e)}") |