aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index ad33122..e582af9 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,11 @@
mod cli;
mod config;
+mod cookies;
mod display;
use clap::Parser;
use cli::Args;
+use cookies::CookieStore;
use display::Display;
fn main() {
@@ -11,15 +13,30 @@ fn main() {
let mut ui = Display::new(&args.bookid);
- let cookies = config::cookies_file();
- if !cookies.exists() {
+ let cookies_path = config::cookies_file();
+ if !cookies_path.exists() {
ui.error_and_exit(
"cookies.json not found.\n\
This version requires an existing authenticated session.",
);
}
- ui.info(&format!("Using cookies file: {}", cookies.display()));
+ // Load cookies
+ let store = match CookieStore::load_from(&cookies_path) {
+ Ok(c) => c,
+ Err(e) => ui.error_and_exit(&format!("Failed to read cookies.json: {e}")),
+ };
+
+ if store.is_empty() {
+ ui.error_and_exit("cookies.json is valid JSON but contains no cookies.");
+ }
+
+ let names = store.cookie_names();
+ ui.info(&format!(
+ "Loaded {} cookies: {}",
+ store.len(),
+ names.join(", ")
+ ));
let output_dir = config::books_root().join(format!("(pending) ({})", args.bookid));