This commit is contained in:
2023-03-27 18:03:20 +02:00
parent 8b121c9e6e
commit b3061ad79a
11 changed files with 516 additions and 30 deletions
+22 -9
View File
@@ -1,17 +1,35 @@
use crate::{auth::jwt::JwtToken, reader::feeds, json_serialization::articles::Articles};
use actix_web::{HttpRequest, Responder};
use scraper::{Html, Selector };
use super::structs::{article::{Article, self}, feed::Feed};
use super::structs::{article::Article, feed::Feed};
pub async fn get(req: HttpRequest) -> impl Responder {
// let _token: JwtToken = JwtToken::decode_from_request(req).unwrap();
let request = req.clone();
let _token: JwtToken = JwtToken::decode_from_request(req).unwrap();
let feed = feeds::get_feed("https://www.heise.de/rss/heise-Rubrik-Wissen.rdf").await.unwrap();
let feed_title: String = feed.title.clone();
let feed_items: Vec<Article> = feed.into_items().into_iter().map(|item| {
let title = item.title.unwrap();
let content = item.content.unwrap();
let frag = Html::parse_fragment(&item.content.unwrap());
let mut content = "".to_string();
let frag_clone = frag.clone();
frag.tree.into_iter().for_each(|node| {
let selector_img = Selector::parse("img").unwrap();
for element in frag_clone.select(&selector_img) {
if !content.starts_with("<img") {
content.push_str(&element.html());
content.push_str("<br>")
}
}
if let scraper::node::Node::Text(text) = node {
content.push_str(&text.text);
}
});
Article {
title,
content,
@@ -22,10 +40,5 @@ pub async fn get(req: HttpRequest) -> impl Responder {
let articles: Articles = Articles { feeds };
articles.respond_to(&req)
//
//
// HttpResponse::Ok()
// .content_type("text/html; charset=utf-8")
// .body(feed.to_string())
articles.respond_to(&request)
}