compiling state [wip]
parent
571be93ce1
commit
f105b2ef2e
File diff suppressed because it is too large
Load Diff
21
Cargo.toml
21
Cargo.toml
|
@ -9,3 +9,24 @@ edition = "2021"
|
||||||
reqwest = { version = "0.11", features = ["json"] }
|
reqwest = { version = "0.11", features = ["json"] }
|
||||||
tokio = { version = "1", features = ["full"] }
|
tokio = { version = "1", features = ["full"] }
|
||||||
rss = { version = "2.0.1" }
|
rss = { version = "2.0.1" }
|
||||||
|
actix-web = "4.1.0"
|
||||||
|
actix-rt = "2.7.0"
|
||||||
|
futures = "0.3.24"
|
||||||
|
serde = {version = "1.0.144", features = ["alloc","derive","serde_derive"]}
|
||||||
|
serde_derive = "1.0.145"
|
||||||
|
actix-service = "2.0.2"
|
||||||
|
diesel = { version = "2.0.2", features = ["postgres"]}
|
||||||
|
dotenv = "0.15.0"
|
||||||
|
bcrypt = "0.13.0"
|
||||||
|
uuid = {version = "1.2.1", features=["serde", "v4"]}
|
||||||
|
jwt = "0.16.0"
|
||||||
|
hmac = "0.12.1"
|
||||||
|
sha2 = "0.10.6"
|
||||||
|
log = "0.4.17"
|
||||||
|
env_logger = "0.9.3"
|
||||||
|
|
||||||
|
[dependencies.serde_json]
|
||||||
|
version = "1.0.86"
|
||||||
|
default-features = false
|
||||||
|
features = ["alloc"]
|
||||||
|
|
||||||
|
|
78
src/main.rs
78
src/main.rs
|
@ -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>> {
|
#[actix_rt::main]
|
||||||
let content = reqwest::get("https://www.heise.de/rss/heise.rdf")
|
async fn main() -> std::io::Result<()> {
|
||||||
.await?
|
env_logger::init();
|
||||||
.bytes()
|
// let feed: String = String::from("https://www.heise.de/rss/heise.rdf");
|
||||||
.await?;
|
// let channel: Channel = get_feed(&feed).await?;
|
||||||
println!("{}", String::from("reading done"));
|
|
||||||
let channel = Channel::read_from(&content[..])?;
|
// for item in channel.items {
|
||||||
Ok(channel)
|
// println!("{:?}", item.guid().unwrap());
|
||||||
}
|
// }
|
||||||
|
|
||||||
#[tokio::main]
|
// Ok(())
|
||||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
||||||
let channel: Channel = example_feed().await?;
|
HttpServer::new(|| {
|
||||||
|
let app = App::new()
|
||||||
println!("{:?}", channel);
|
.wrap_fn(|req, srv| {
|
||||||
for item in channel.items {
|
let passed: bool;
|
||||||
println!("{}", item.content.unwrap());
|
let request_url: String = String::from(req.uri().path().clone());
|
||||||
}
|
|
||||||
println!("{}", String::from("test"));
|
if req.path().contains("/reader/") {
|
||||||
|
todo!("implement");
|
||||||
Ok(())
|
} 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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue