From 049cd06b6545aa7c487a7b4be776588e3d7bc9be Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Fri, 29 Jan 2021 12:47:33 +0100 Subject: [PATCH] Pocketbook dialog added. --- src/main.rs | 21 +++++++++++++++++++-- src/pocketbook.rs | 29 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 src/pocketbook.rs diff --git a/src/main.rs b/src/main.rs index 9d04f96..59d8e5f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +mod pocketbook; + use rusqlite::{named_params, Connection, Result, NO_PARAMS}; use std::error::Error; use std::fs::File; @@ -105,6 +107,8 @@ struct BookEntry { } fn main() { + let mut authors_fixed = 0; + let mut conn = Connection::open("/mnt/ext1/system/explorer-3/explorer-3.db").unwrap(); let tx = conn.transaction().unwrap(); { @@ -133,8 +137,6 @@ fn main() { } } - //println!("Number of entries found: {}", bookentries.len()); - for entry in bookentries { let file = File::open(entry.filepath.as_str()); let file = match file { @@ -154,9 +156,24 @@ fn main() { .unwrap(); stmt.execute_named(named_params![":file_as": file_as, ":book_id": entry.id]) .unwrap(); + authors_fixed = authors_fixed + 1; } } } } tx.commit().unwrap(); + + if cfg!(target_arch = "arm") { + if authors_fixed == 0 { + pocketbook::dialog( + pocketbook::Icon::Info, + "The database seems to be ok.\nNothing had to be fixed.", + ); + } else { + pocketbook::dialog( + pocketbook::Icon::Info, + &format!("Authors fixed: {}", &authors_fixed), + ); + } + } } diff --git a/src/pocketbook.rs b/src/pocketbook.rs new file mode 100644 index 0000000..7cbc894 --- /dev/null +++ b/src/pocketbook.rs @@ -0,0 +1,29 @@ +use std::process::Command; + +static DIALOG_PATH: &str = "/ebrmain/bin/dialog"; + +#[allow(dead_code)] +pub enum Icon { + None = 0, + Info, + Question, + Attention, + X, + WLan, +} + +pub fn dialog(icon: Icon, text: &str) { + let iconstr = match icon { + Icon::None => "0", + Icon::Info => "1", + Icon::Question => "2", + Icon::Attention => "3", + Icon::X => "4", + Icon::WLan => "5", + }; + + Command::new(DIALOG_PATH) + .args(&[iconstr, "", text, "OK"]) + .output() + .unwrap(); +}