Skip to content

Commit 50b6de5

Browse files
committed
add status function
1 parent c1afe18 commit 50b6de5

3 files changed

Lines changed: 29 additions & 7 deletions

File tree

akari_bot_webrender/functions/main.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ def __init__(self,
8181
debug: bool = False,
8282
remote_webrender_url: Optional[str] = None,
8383
remote_only: bool = False,
84-
export_logs = False,
85-
logs_path = None,
84+
export_logs=False,
85+
logs_path=None,
8686
name: str = None):
8787
"""
8888
:param debug: If True, the browser will run on non-headless mode, the page will not be closed after the screenshot is taken.
@@ -93,11 +93,12 @@ def __init__(self,
9393
self.remote_webrender_url += "/"
9494
self.remote_only = remote_only
9595
self.export_logs = export_logs
96-
if export_logs:
96+
if export_logs:
9797
if logs_path:
9898
self.logs_path = Path(logs_path)
9999
else:
100-
self.logs_path = (Path(__file__).parent.parent.parent / "logs").resolve()
100+
self.logs_path = (
101+
Path(__file__).parent.parent.parent / "logs").resolve()
101102
if name:
102103
self.name = name
103104

@@ -213,7 +214,8 @@ async def select_element_and_screenshot(self,
213214
page: Page,
214215
start_time: float,
215216
count_time=True,
216-
output_type: Literal["png", "jpeg"] = "jpeg",
217+
output_type: Literal["png",
218+
"jpeg"] = "jpeg",
217219
output_quality: int = 90):
218220
el, selected_ = await self.select_element(elements, page)
219221
if not el:
@@ -340,3 +342,18 @@ async def source(self, options: SourceOptions):
340342
return await _source.inner_text()
341343

342344
return _source
345+
346+
@webrender_fallback
347+
async def status(self):
348+
pages_open = 0
349+
for context in self.browser.browser.contexts:
350+
pages_open += len(context.pages)
351+
return {
352+
"browser_initialized": self.browser.browser is not None,
353+
"debug_mode": self.debug,
354+
"remote_only": self.remote_only,
355+
"export_logs": self.export_logs,
356+
"logs_path": str(self.logs_path) if self.logs_path else None,
357+
"name": self.name,
358+
"pages_open": pages_open,
359+
}

akari_bot_webrender/server/main.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
webrender = WebRender(debug=config.get("debug", False),
1818
export_logs=config.get("export_logs", False)
19-
)
19+
)
2020

2121

2222
@asynccontextmanager
@@ -74,6 +74,11 @@ async def source(options: SourceOptions):
7474
return ORJSONResponse(content=source_content)
7575

7676

77+
@app.get("/status/")
78+
async def status():
79+
return ORJSONResponse(content=await webrender.status())
80+
81+
7782
@app.get("/favicon.ico")
7883
async def favicon():
7984
return FileResponse((Path(__file__).parent / "favicon.ico").resolve())

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "akari-bot-webrender"
3-
version = "0.4.8"
3+
version = "0.4.9"
44
description = ""
55
authors = [
66
{name = "OasisAkari", email = "OasisAkari@gmail.com"},

0 commit comments

Comments
 (0)