feat: add configurable screenshot resolution limit
This commit is contained in:
1 parent
59f458205d
commit
ab066733b8
13 files changed
+134
-4
No files matched your search
@@ -25,12 +25,14 @@ from artemis.clients.ui_automator_client import (
|
||||
UIAutomatorClient,
|
||||
_parse_hierarchy_xml_to_elements,
|
||||
)
|
||||
from artemis.config.agent import load_agent_config
|
||||
from artemis.config.paths import get_temp_dir
|
||||
from artemis.drivers.base import BaseDeviceDriver, KeyCode, ScreenData, SwipeDirection
|
||||
from artemis.toolchain import find_ffmpeg, find_scrcpy
|
||||
from artemis.utils.video import build_scrcpy_record_command
|
||||
from artemis.utils.ui_filter import filter_ui_hierarchy
|
||||
from artemis.utils.logger import get_logger
|
||||
from artemis.utils.screenshot_limit import limit_screenshot_long_edge
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
@@ -88,6 +90,7 @@ class AndroidAdbDriver(BaseDeviceDriver):
|
||||
self._device: AdbDevice | None = None
|
||||
self._recording_process: asyncio.subprocess.Process | None = None
|
||||
self._recording_output_path: Path | None = None
|
||||
self._screenshot_config = load_agent_config().screenshot
|
||||
|
||||
@property
|
||||
def device_id(self) -> str:
|
||||
@@ -215,6 +218,13 @@ class AndroidAdbDriver(BaseDeviceDriver):
|
||||
if isinstance(screenshot_bytes, bytes) and screenshot_bytes
|
||||
else base64.b64decode(clean_b64)
|
||||
)
|
||||
if self._screenshot_config.enabled:
|
||||
limited_bytes = limit_screenshot_long_edge(
|
||||
clean_bytes, self._screenshot_config.max_long_edge
|
||||
)
|
||||
if limited_bytes is not clean_bytes:
|
||||
clean_bytes = limited_bytes
|
||||
clean_b64 = base64.b64encode(clean_bytes).decode("utf-8")
|
||||
|
||||
return ScreenData(
|
||||
screenshot_bytes=clean_bytes,
|
||||
|
||||
Reference in new issue
Block a user