Skip to content
Snippets Groups Projects
Commit 20f08f3c authored by insert's avatar insert
Browse files

Initial commit; test code.

parents
Branches
No related merge requests found
/target
This diff is collapsed.
[package]
name = "january"
version = "0.1.0"
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
actix-web = "4.0.0-beta.6"
reqwest = "0.11.3"
scraper = "0.12.0"
serde = "1"
\ No newline at end of file
use actix_web::{App, HttpRequest, HttpServer, Responder, web::{self, Query}};
use scraper::{Html, Selector};
use serde::{Deserialize};
async fn greet(req: HttpRequest) -> impl Responder {
let name = req.match_info().get("name").unwrap_or("World");
format!("Hello {}!", &name)
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new()
.route("/", web::get().to(greet))
.route("/embed", web::get().to(embed))
})
.bind(("127.0.0.1", 3000))?
.run()
.await
}
#[derive(Deserialize)]
struct Info {
url: String,
}
async fn embed(info: Query<Info>) -> impl Responder {
let url = info.into_inner().url;
let resp = reqwest::get(url).await.unwrap();
assert!(resp.status().is_success());
let body = resp.text().await.unwrap();
let fragment = Html::parse_document(&body);
let selector = Selector::parse("meta").unwrap();
for el in fragment.select(&selector) {
let node = el.value();
dbg!(node.attr("property"));
dbg!(node.attr("content"));
}
format!("gaming has been deposited into stdout")
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment