diff --git a/fire_seq_search_server/src/post_query/app_uri.rs b/fire_seq_search_server/src/post_query/app_uri.rs index c5b8d3f..1d9e8c1 100644 --- a/fire_seq_search_server/src/post_query/app_uri.rs +++ b/fire_seq_search_server/src/post_query/app_uri.rs @@ -1,11 +1,11 @@ use log::{error, info}; -use crate::post_query::logseq_uri::generate_logseq_uri; +use crate::post_query::logseq_uri::{generate_logseq_uri,parse_date_from_str}; use crate::post_query::obsidian_uri::generate_obsidian_uri; use crate::query_engine::ServerInformation; -use crate::query_engine::NotebookSoftware::Obsidian; // Maybe I should wrap them with the same interface? -Zhenbo Li 2023-Feb-05 +// Deprecated on 2024-Sep-21 pub fn generate_uri(title: &str, is_page_hit: &bool, server_info: &ServerInformation) -> String { if server_info.software == Obsidian { info!("Generating Obsidian URI for {}", title); @@ -16,6 +16,19 @@ pub fn generate_uri(title: &str, is_page_hit: &bool, server_info: &ServerInforma return generate_obsidian_uri(&title, *is_page_hit, &server_info); } - return generate_logseq_uri(&title, &is_page_hit, &server_info); + return generate_logseq_uri(&title, *is_page_hit, &server_info); +} + +use crate::query_engine::NotebookSoftware::{Logseq,Obsidian}; +pub fn generate_uri_v2(title: &str, server_info: &ServerInformation) -> String { + match &server_info.software { + Obsidian => generate_obsidian_uri(title, true, server_info), + Logseq => { + let dt = parse_date_from_str(title); + // TODO remove this duplicate calc + // I don't care the performance here, but I want to make code cleaner - 2024 Sep 21 + generate_logseq_uri(title, dt.is_none(), server_info) + } + } } diff --git a/fire_seq_search_server/src/post_query/hit_parsed.rs b/fire_seq_search_server/src/post_query/hit_parsed.rs index c05f3d1..d030554 100644 --- a/fire_seq_search_server/src/post_query/hit_parsed.rs +++ b/fire_seq_search_server/src/post_query/hit_parsed.rs @@ -1,6 +1,6 @@ use log::debug; use crate::JOURNAL_PREFIX; -use crate::post_query::app_uri::generate_uri; +use crate::post_query::app_uri::generate_uri_v2; use crate::post_query::highlighter::highlight_keywords_in_body; use crate::query_engine::ServerInformation; @@ -48,7 +48,7 @@ impl FireSeqSearchHitParsed { title.to_string() }; - let logseq_uri = generate_uri(&title, &is_page_hit, server_info); + let logseq_uri = generate_uri_v2(&title, server_info); debug!("Processing a hit, title={}, uri={}", &title, &logseq_uri); diff --git a/fire_seq_search_server/src/post_query/logseq_uri.rs b/fire_seq_search_server/src/post_query/logseq_uri.rs index 8aba6e9..e30fe75 100644 --- a/fire_seq_search_server/src/post_query/logseq_uri.rs +++ b/fire_seq_search_server/src/post_query/logseq_uri.rs @@ -1,4 +1,4 @@ -use log::error; +use log::{error,info}; use crate::ServerInformation; use url::Url; @@ -37,8 +37,8 @@ pub fn process_note_title(file_name: &str, server_info: &ServerInformation) -> S file_name } -pub fn generate_logseq_uri(title: &str, is_page_hit: &bool, server_info: &ServerInformation) -> String { - return if *is_page_hit { +pub fn generate_logseq_uri(title: &str, is_page_hit: bool, server_info: &ServerInformation) -> String { + return if is_page_hit { let title = process_note_title(title, server_info); let mut uri = Url::parse("logseq://graph/").unwrap(); uri.set_path(&server_info.notebook_name); @@ -53,7 +53,7 @@ pub fn generate_logseq_uri(title: &str, is_page_hit: &bool, server_info: &Server } #[derive(PartialEq, Debug)] -struct JournalDate { +pub struct JournalDate { pub year: u32, pub month: u32, pub date: u32, @@ -152,9 +152,9 @@ fn parse_slice_to_u8(slice: Option<&str>) -> Option { } } -fn parse_date_from_str(title: &str) -> Option { +pub fn parse_date_from_str(title: &str) -> Option { if title.len() != 10 { - error!("Journal length unexpected: {}", title); + info!("Journal length unexpected: {}", title); return None; } @@ -219,4 +219,4 @@ mod test_logseq_uri { let r = generate_logseq_uri("C++", &true, &server_info); assert_eq!(&r, "logseq://graph/logseq_notebook?page=C%2B%2B"); } -} \ No newline at end of file +} diff --git a/fire_seq_search_server/src/query_engine/mod.rs b/fire_seq_search_server/src/query_engine/mod.rs index 8d5655c..2fe7da7 100644 --- a/fire_seq_search_server/src/query_engine/mod.rs +++ b/fire_seq_search_server/src/query_engine/mod.rs @@ -67,14 +67,6 @@ impl QueryEngine { let index: tantivy::Index = QueryEngine::build_index(&server_info, &document_setting, note_list).await; - - /* - let loaded_notes = crate::load_notes::read_all_notes(&server_info); - let loaded_articles: Vec
= loaded_notes.into_iter().map( - |x| Article{file_name:x.0, content:x.1} - ).collect(); - let index = indexing_documents(&server_info, &document_setting, &loaded_articles); - */ let (reader, query_parser) = build_reader_parser(&index, &document_setting); debug!("Query engine construction finished");