1
0
Fork 0

svc: Add get screen operation

The *GET /screen/{name}/* path operation retrieves the current
information about a single screen.
master
Dustin 2022-04-30 21:49:00 -05:00
parent e452393b9f
commit 12d6337335
2 changed files with 17 additions and 0 deletions

View File

@ -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,

View File

@ -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 = {}