diff --git a/src/database.rs b/src/database.rs index 0eb1214..4c50098 100644 --- a/src/database.rs +++ b/src/database.rs @@ -9,7 +9,6 @@ pub struct BookEntry { filepath: String, author: String, firstauthor: String, - has_drm: bool, genre: String, first_author_letter: String, series: String, @@ -45,10 +44,6 @@ fn get_epubs_from_database(tx: &Transaction) -> Vec { let filepath = format!("{}/{}", prefix, filename); let firstauthor: String = row.get(3).unwrap_or_default(); let author: String = row.get(4).unwrap_or_default(); - let has_drm = match prefix.as_str() { - "/mnt/ext1/Digital Editions" => true, - _ => false, - }; let genre: String = row.get(5).unwrap_or_default(); let first_author_letter = row.get(6).unwrap_or_default(); let series: String = row.get(7).unwrap_or_default(); @@ -58,7 +53,6 @@ fn get_epubs_from_database(tx: &Transaction) -> Vec { filepath, firstauthor, author, - has_drm, genre, first_author_letter, series, @@ -119,7 +113,6 @@ fn remove_ghost_books_from_db(tx: &Transaction) -> usize { pub struct Statistics { pub authors_fixed: i32, pub ghost_books_cleaned: usize, - pub drm_skipped: usize, pub genres_fixed: usize, pub sorting_fixed: usize, pub series_fixed: usize, @@ -139,7 +132,6 @@ pub fn fix_db_entries() -> Statistics { let mut stat = Statistics { authors_fixed: 0, ghost_books_cleaned: 0, - drm_skipped: 0, genres_fixed: 0, sorting_fixed: 0, series_fixed: 0, @@ -152,11 +144,6 @@ pub fn fix_db_entries() -> Statistics { let book_entries = get_epubs_from_database(&tx); for entry in book_entries { - if entry.has_drm { - stat.drm_skipped = stat.drm_skipped + 1; - continue; - } - if let Some(epub_metadata) = epub::get_epub_metadata(&entry.filepath) { // Fix firstauthor… let mut firstauthors = epub_metadata @@ -185,7 +172,8 @@ pub fn fix_db_entries() -> Statistics { .unwrap_or_default() .to_string() .to_uppercase(); - if entry.first_author_letter != first_author_letter { + + if first_author_letter != "\0" && (entry.first_author_letter != first_author_letter) { let mut stmt = tx .prepare("UPDATE books_impl SET first_author_letter = :first_letter WHERE id = :book_id") .unwrap(); diff --git a/src/epub.rs b/src/epub.rs index 759c91f..a5916d4 100644 --- a/src/epub.rs +++ b/src/epub.rs @@ -151,6 +151,10 @@ pub fn get_epub_metadata(filename: &str) -> Option { .unwrap() .as_str(); xml_authors.insert(curr_id.clone(), XmlAut::new()); + } else { + curr_id = "none".to_string() + xml_authors.len().to_string().as_str(); + let entry = xml_authors.entry(curr_id.clone()).or_insert(XmlAut::new()); + entry.role = "aut".to_string(); } } else { if let Some(file_as_val) = e diff --git a/src/main.rs b/src/main.rs index 79c1f8d..7374124 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,25 +25,12 @@ fn main() { if cfg!(target_arch = "arm") { if stat.anything_fixed() == false { - if stat.drm_skipped == 0 { - pocketbook::dialog( - pocketbook::Icon::Info, - "The database seems to be ok.\n\ + pocketbook::dialog( + pocketbook::Icon::Info, + "The database seems to be ok.\n\ Nothing had to be fixed.", - &["OK"], - ); - } else { - pocketbook::dialog( - pocketbook::Icon::Info, - &format!( - "The database seems to be ok.\n\ - Nothing had to be fixed.\n\ - (Books skipped (DRM): {})", - &stat.drm_skipped - ), - &["OK"], - ); - } + &["OK"], + ); } else { pocketbook::dialog( pocketbook::Icon::Info, @@ -52,13 +39,11 @@ fn main() { Sorting fixed: {}\n\ Genres fixed: {}\n\ Series fixed: {}\n\ - Books skipped (DRM): {}\n\ Books cleaned from DB: {}", &stat.authors_fixed, &stat.sorting_fixed, &stat.genres_fixed, &stat.series_fixed, - &stat.drm_skipped, &stat.ghost_books_cleaned ), &["OK"], @@ -70,13 +55,11 @@ fn main() { Sorting fixed: {}\n\ Genres fixed: {}\n\ Series fixed: {}\n\ - Books skipped (DRM): {}\n\ Books cleaned from DB: {}", &stat.authors_fixed, &stat.sorting_fixed, &stat.genres_fixed, &stat.series_fixed, - &stat.drm_skipped, &stat.ghost_books_cleaned ); }