Neon-AI commited on
Commit
841d632
·
verified ·
1 Parent(s): 2f7596f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -10
app.py CHANGED
@@ -1,8 +1,8 @@
1
  import streamlit as st
2
  import asyncio
3
  from playwright.async_api import async_playwright
 
4
 
5
- # A simple log collector
6
  logs = []
7
 
8
  async def run_bot(url):
@@ -10,28 +10,27 @@ async def run_bot(url):
10
  browser = await p.chromium.launch(headless=True)
11
  page = await browser.new_page()
12
 
13
- # Capture console logs
14
  page.on("console", lambda msg: logs.append(f"LOG: {msg.text}"))
15
-
16
- # Capture network requests/responses
17
  page.on("request", lambda req: logs.append(f"REQ: {req.url}"))
18
  page.on("response", lambda res: logs.append(f"RES: {res.url} {res.status}"))
19
 
20
  await page.goto(url)
21
-
22
- # Inject JS like DevTools
23
  await page.evaluate("console.log('Injected script running');")
24
-
25
  await browser.close()
26
 
 
 
 
 
27
  st.title("DevTools Bot Dashboard")
28
 
29
- # Take the link from frontend
30
  target_url = st.text_input("Enter the URL to monitor:", "https://example.com")
31
 
32
  if st.button("Run Bot"):
33
- logs.clear() # clear previous logs
34
- asyncio.run(run_bot(target_url))
 
 
35
 
36
  # Display logs
37
  st.subheader("Logs")
 
1
  import streamlit as st
2
  import asyncio
3
  from playwright.async_api import async_playwright
4
+ import threading
5
 
 
6
  logs = []
7
 
8
  async def run_bot(url):
 
10
  browser = await p.chromium.launch(headless=True)
11
  page = await browser.new_page()
12
 
 
13
  page.on("console", lambda msg: logs.append(f"LOG: {msg.text}"))
 
 
14
  page.on("request", lambda req: logs.append(f"REQ: {req.url}"))
15
  page.on("response", lambda res: logs.append(f"RES: {res.url} {res.status}"))
16
 
17
  await page.goto(url)
 
 
18
  await page.evaluate("console.log('Injected script running');")
 
19
  await browser.close()
20
 
21
+ # Wrapper to run async function in thread
22
+ def run_bot_thread(url):
23
+ asyncio.run(run_bot(url))
24
+
25
  st.title("DevTools Bot Dashboard")
26
 
 
27
  target_url = st.text_input("Enter the URL to monitor:", "https://example.com")
28
 
29
  if st.button("Run Bot"):
30
+ logs.clear()
31
+ # Start bot in separate thread
32
+ threading.Thread(target=run_bot_thread, args=(target_url,), daemon=True).start()
33
+ st.success("Bot started in background. Logs will appear below shortly.")
34
 
35
  # Display logs
36
  st.subheader("Logs")