55 lines
1.1 KiB
Rust
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)
|
|
}
|