From ea754b6f3eb7c595700e9ccf071fe5f2025b3f43 Mon Sep 17 00:00:00 2001 From: mace Date: Sun, 12 Nov 2023 11:05:40 +0100 Subject: [PATCH] Improve parsing --- src/reader/sync.rs | 14 ++++++++++++-- vue/src/assets/main.css | 10 ++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/reader/sync.rs b/src/reader/sync.rs index 54bdc86..033ba08 100644 --- a/src/reader/sync.rs +++ b/src/reader/sync.rs @@ -20,7 +20,16 @@ use scraper::{Html, Selector}; fn create_feed_item(item: Item, feed: &Feed, connection: &mut PgConnection) { let item_title = item.title.clone().unwrap(); 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 frag_clone = frag.clone(); frag.tree.into_iter().for_each(|node| { @@ -92,7 +101,8 @@ pub async fn sync(_req: HttpRequest, data: web::Json) -> impl Responde match result { Ok(channel) => { 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), diff --git a/vue/src/assets/main.css b/vue/src/assets/main.css index d7ae115..05b2159 100644 --- a/vue/src/assets/main.css +++ b/vue/src/assets/main.css @@ -44,3 +44,13 @@ a, font-size: 20px; padding: 1em; } + +.feed-content p { + padding: 1em; +} + +.feed-content h3 { + padding: 1em; + font-size: 21px; + font-weight: bold; +}