File size: 798 Bytes
057ddf0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use chromiumoxide::browser::{Browser, BrowserConfig};
use futures_util::StreamExt;
use tokio::sync::broadcast;

pub async fn run_browser(tx: broadcast::Sender<String>) {
    let (browser, mut handler) = Browser::launch(
        BrowserConfig::builder()
            .arg("--no-sandbox")
            .build().unwrap()
    ).await.unwrap();

    tokio::spawn(async move {
        while let Some(h) = handler.next().await { h.unwrap(); }
    });

    let page = browser.new_page("https://www.google.com").await.unwrap();
    loop {
        if let Ok(img) = page.screenshot().await {
            let b64 = base64::encode(img);
            let _ = tx.send(format!("{{\"type\":\"frame\", \"data\":\"{}\"}}", b64));
        }
        tokio::time::sleep(std::time::Duration::from_millis(200)).await;
    }
}