cleanup, sync
This commit is contained in:
@@ -6,11 +6,11 @@ pub struct Article {
|
||||
pub content: String,
|
||||
}
|
||||
|
||||
impl Article {
|
||||
pub fn new(title: &str, content: &str) -> Article {
|
||||
Article {
|
||||
title: title.to_string(),
|
||||
content: content.to_string(),
|
||||
}
|
||||
}
|
||||
}
|
||||
// impl Article {
|
||||
// pub fn new(title: &str, content: &str) -> Article {
|
||||
// Article {
|
||||
// title: title.to_string(),
|
||||
// content: content.to_string(),
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
+65
-6
@@ -1,12 +1,71 @@
|
||||
use actix_web::{HttpRequest, Responder};
|
||||
use super::feeds;
|
||||
use crate::{database::establish_connection, models::feed::rss_feed::Feed, schema::feed};
|
||||
use actix_web::{HttpRequest, HttpResponse, Responder};
|
||||
use diesel::prelude::*;
|
||||
|
||||
use crate::{database::establish_connection, schema::feed};
|
||||
|
||||
use super::structs::feed::Feed;
|
||||
use futures::StreamExt;
|
||||
|
||||
pub async fn sync(req: HttpRequest) -> impl Responder {
|
||||
let mut connection: diesel::PgConnection = establish_connection();
|
||||
|
||||
let users = feed::table.load::<Feed>(&mut connection).unwrap();
|
||||
let feed: Vec<Feed> = feed::table.load::<Feed>(&mut connection).unwrap();
|
||||
|
||||
// Create an asynchronous stream of Feed items
|
||||
let feed_stream = futures::stream::iter(feed.clone().into_iter()).map(|feed| {
|
||||
// Asynchronously fetch the feed_list for each feed
|
||||
async move {
|
||||
let feed_list = feeds::get_feed(&feed.url).await.unwrap();
|
||||
// Process feed_list here
|
||||
}
|
||||
});
|
||||
|
||||
// Execute the asynchronous stream
|
||||
tokio::spawn(feed_stream.for_each(|_| async {}));
|
||||
|
||||
HttpResponse::Ok()
|
||||
}
|
||||
// pub async fn sync(req: HttpRequest) -> impl Responder {
|
||||
// let request = req.clone();
|
||||
// let mut connection: diesel::PgConnection = establish_connection();
|
||||
//
|
||||
// let feed: Vec<Feed> = feed::table.load::<Feed>(&mut connection).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 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 }
|
||||
// })
|
||||
// .collect();
|
||||
|
||||
// let feed_stream = stream::iter(feed.iter().cloned()).map(|feed: Feed| {
|
||||
// let feed_list = feeds::get_feed(&feed.url).await.unwrap();
|
||||
// // Process feed_list here
|
||||
// });
|
||||
//
|
||||
// tokio::spawn(feed_stream.for_each(|_| async {}));
|
||||
// // let feed_list = feeds::get_feed(&feed.url).await.unwrap();
|
||||
// // feed.iter().for_each(|feed: &Feed| {
|
||||
// // });
|
||||
//
|
||||
// HttpResponse::Ok()
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user