compiling state [wip]

This commit is contained in:
2022-11-23 18:19:09 +01:00
parent 571be93ce1
commit f105b2ef2e
3 changed files with 931 additions and 23 deletions
+55 -23
View File
@@ -1,26 +1,58 @@
use std::error::Error;
#[macro_use]
extern crate diesel;
extern crate dotenv;
use rss::Channel;
use actix_service::Service;
use actix_web::{App, HttpResponse, HttpServer};
use env_logger;
use futures::future::{ok, Either};
use log;
mod models;
mod reader;
mod schema;
mod views;
async fn example_feed() -> Result<Channel, Box<dyn Error>> {
let content = reqwest::get("https://www.heise.de/rss/heise.rdf")
.await?
.bytes()
.await?;
println!("{}", String::from("reading done"));
let channel = Channel::read_from(&content[..])?;
Ok(channel)
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let channel: Channel = example_feed().await?;
println!("{:?}", channel);
for item in channel.items {
println!("{}", item.content.unwrap());
}
println!("{}", String::from("test"));
Ok(())
#[actix_rt::main]
async fn main() -> std::io::Result<()> {
env_logger::init();
// let feed: String = String::from("https://www.heise.de/rss/heise.rdf");
// let channel: Channel = get_feed(&feed).await?;
// for item in channel.items {
// println!("{:?}", item.guid().unwrap());
// }
// Ok(())
HttpServer::new(|| {
let app = App::new()
.wrap_fn(|req, srv| {
let passed: bool;
let request_url: String = String::from(req.uri().path().clone());
if req.path().contains("/reader/") {
todo!("implement");
} else {
passed = true;
}
let end_result = match passed {
true => Either::Left(srv.call(req)),
false => Either::Right(ok(req.into_response(
HttpResponse::Unauthorized().finish().map_into_boxed_body(),
))),
};
async move {
let result = end_result.await?;
log::info!("{} -> {}", request_url, &result.status());
Ok(result)
}
})
.configure(views::views_factory);
return app;
})
.bind("127.0.0.1:8001")?
.run()
.await
}