use std::time::Duration;
use browser_window::{application::*, browser::*, prelude::*};
fn main() {
let application =
Application::initialize(&ApplicationSettings::default()).expect("unable to initialize");
let runtime = application.start();
runtime.run_async(|app| async move {
let mut bwb =
BrowserWindowBuilder::new(Source::Url("https://github.com/login".to_string()));
bwb.size(800, 600);
bwb.title("Log in to Github");
let bw = bwb.build(&app).await;
bw.show();
let cookie_jar = app.cookie_jar().expect("cookies not supported");
while bw.url() == ""
|| bw.url() == "https://github.com/login"
|| bw.url() == "https://github.com/session"
{
app.sleep(Duration::from_millis(100)).await;
}
let logged_in_cookie = cookie_jar.find_from_all("logged_in").await;
if logged_in_cookie.is_none() || logged_in_cookie.unwrap().value() != "yes" {
eprintln!("Not logged in.");
} else {
let session_cookie = cookie_jar
.find_from_all("_gh_sess")
.await
.expect("session cookie not found");
let session_id = session_cookie.value();
eprintln!("Logged in with session ID: {}", session_id);
}
});
}