frc/src/webserve.rs

55 lines
1.1 KiB
Rust

use futures::channel::oneshot;
use rouille::{router, Response};
use tokio::task::JoinHandle;
static HTML: &str = r#"<!DOCTYPE html>
<html>
<head>
<title>frc</title>
<style>
* {
color: white;
background-color: black;
}
.center-big {
font-size: 10vw;
text-align: center;
font-weight: bold;
}
.center {
text-align: center;
font-weight: bold;
}
</style>
</head>
<body>
<p class="center">Send youtube links to the telegram bot</p>
<p class="center-big">frc</p>
</body>
</html>
"#;
pub async fn start_server(addr: String) -> Result<JoinHandle<()>, anyhow::Error> {
let (sender, receiver) = oneshot::channel::<()>();
let handle = tokio::spawn(async move {
println!("starting server on {}", addr.clone());
let _ = sender.send(());
rouille::start_server(addr, move |req| {
router!(req,
(GET) (/) => {
Response::html(HTML)
},
_ => Response::empty_404()
)
});
});
let _ = receiver.await;
println!("frc server started");
Ok(handle)
}