diamond-in commited on
Commit
057ddf0
·
verified ·
1 Parent(s): 5d031fb

Update src/browser/controller.rs

Browse files
Files changed (1) hide show
  1. src/browser/controller.rs +24 -0
src/browser/controller.rs CHANGED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ use chromiumoxide::browser::{Browser, BrowserConfig};
2
+ use futures_util::StreamExt;
3
+ use tokio::sync::broadcast;
4
+
5
+ pub async fn run_browser(tx: broadcast::Sender<String>) {
6
+ let (browser, mut handler) = Browser::launch(
7
+ BrowserConfig::builder()
8
+ .arg("--no-sandbox")
9
+ .build().unwrap()
10
+ ).await.unwrap();
11
+
12
+ tokio::spawn(async move {
13
+ while let Some(h) = handler.next().await { h.unwrap(); }
14
+ });
15
+
16
+ let page = browser.new_page("https://www.google.com").await.unwrap();
17
+ loop {
18
+ if let Ok(img) = page.screenshot().await {
19
+ let b64 = base64::encode(img);
20
+ let _ = tx.send(format!("{{\"type\":\"frame\", \"data\":\"{}\"}}", b64));
21
+ }
22
+ tokio::time::sleep(std::time::Duration::from_millis(200)).await;
23
+ }
24
+ }