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()
|
return await svc.get_screens()
|
||||||
|
|
||||||
|
|
||||||
|
@app.get('/screen/{name}/')
|
||||||
|
async def get_screen(name: str):
|
||||||
|
return await svc.get_screen(name)
|
||||||
|
|
||||||
|
|
||||||
@app.post(
|
@app.post(
|
||||||
'/screen/{name}/refresh',
|
'/screen/{name}/refresh',
|
||||||
response_class=fastapi.Response,
|
response_class=fastapi.Response,
|
||||||
|
|
|
@ -37,6 +37,18 @@ class HUDService:
|
||||||
self.urls_file = Path('urls.json')
|
self.urls_file = Path('urls.json')
|
||||||
self.lock = asyncio.Lock()
|
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]:
|
async def get_screens(self) -> Dict[str, HUDScreen]:
|
||||||
assert self.marionette
|
assert self.marionette
|
||||||
screens = {}
|
screens = {}
|
||||||
|
|
Loading…
Reference in New Issue