Improve parsing

master
Mathias Rothenhaeusler 2023-11-12 11:05:40 +01:00
parent d920f5b9b9
commit ea754b6f3e
2 changed files with 22 additions and 2 deletions

View File

@ -20,7 +20,16 @@ use scraper::{Html, Selector};
fn create_feed_item(item: Item, feed: &Feed, connection: &mut PgConnection) { fn create_feed_item(item: Item, feed: &Feed, connection: &mut PgConnection) {
let item_title = item.title.clone().unwrap(); let item_title = item.title.clone().unwrap();
log::info!("Create feed item: {}", item_title); log::info!("Create feed item: {}", item_title);
let frag = Html::parse_fragment(&item.content.clone().unwrap_or_default());
let base_content: &str = match item.content() {
Some(c) => c,
None => match item.description() {
Some(c) => c,
None => "",
},
};
let frag = Html::parse_fragment(base_content);
let mut content = "".to_string(); let mut content = "".to_string();
let frag_clone = frag.clone(); let frag_clone = frag.clone();
frag.tree.into_iter().for_each(|node| { frag.tree.into_iter().for_each(|node| {
@ -92,7 +101,8 @@ pub async fn sync(_req: HttpRequest, data: web::Json<JsonUser>) -> impl Responde
match result { match result {
Ok(channel) => { Ok(channel) => {
for item in channel.into_items() { for item in channel.into_items() {
create_feed_item(item, &feed, &mut connection) log::info!("{:?}", item);
create_feed_item(item, &feed, &mut connection);
} }
} }
Err(e) => log::error!("Could not get channel {}. Error: {}", feed.url, e), Err(e) => log::error!("Could not get channel {}. Error: {}", feed.url, e),

View File

@ -44,3 +44,13 @@ a,
font-size: 20px; font-size: 20px;
padding: 1em; padding: 1em;
} }
.feed-content p {
padding: 1em;
}
.feed-content h3 {
padding: 1em;
font-size: 21px;
font-weight: bold;
}