svc: Add get screen operation
The *GET /screen/{name}/* path operation retrieves the current information about a single screen.master
parent
e452393b9f
commit
12d6337335
|
@ -81,6 +81,11 @@ async def list_screens():
|
|||
return await svc.get_screens()
|
||||
|
||||
|
||||
@app.get('/screen/{name}/')
|
||||
async def get_screen(name: str):
|
||||
return await svc.get_screen(name)
|
||||
|
||||
|
||||
@app.post(
|
||||
'/screen/{name}/refresh',
|
||||
response_class=fastapi.Response,
|
||||
|
|
|
@ -37,6 +37,18 @@ class HUDService:
|
|||
self.urls_file = Path('urls.json')
|
||||
self.lock = asyncio.Lock()
|
||||
|
||||
async def get_screen(self, name: str) -> HUDScreen:
|
||||
assert self.marionette
|
||||
async with self.lock:
|
||||
handle = self.windows[name]
|
||||
await self.marionette.switch_to_window(handle)
|
||||
title = await self.marionette.get_title()
|
||||
url = await self.marionette.get_url()
|
||||
rect = await self.marionette.get_window_rect()
|
||||
return HUDScreen(
|
||||
handle=handle, title=title, url=url, dimensions=rect
|
||||
)
|
||||
|
||||
async def get_screens(self) -> Dict[str, HUDScreen]:
|
||||
assert self.marionette
|
||||
screens = {}
|
||||
|
|
Loading…
Reference in New Issue