diff options
| author | A Farzat <a@farzat.xyz> | 2026-03-08 21:06:39 +0300 |
|---|---|---|
| committer | A Farzat <a@farzat.xyz> | 2026-03-08 21:39:23 +0300 |
| commit | ab5ce397987bd97c920101a8d393d0fde29b5f74 (patch) | |
| tree | 3932882f3b741a491681fe8b24c9e74a01836647 /src/http_client.rs | |
| parent | d3c2e22de84428229c36a6b81722da40c85387ca (diff) | |
| download | oreilly-epub-ab5ce397987bd97c920101a8d393d0fde29b5f74.tar.gz oreilly-epub-ab5ce397987bd97c920101a8d393d0fde29b5f74.zip | |
Allow cookies.json in config dir
This allows running the program from anywhere, given the cookies are
placed in the config dir.
Diffstat (limited to 'src/http_client.rs')
| -rw-r--r-- | src/http_client.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/http_client.rs b/src/http_client.rs index 6e06474..e8251d3 100644 --- a/src/http_client.rs +++ b/src/http_client.rs @@ -1,15 +1,16 @@ use anyhow::{Context, Result}; use reqwest::{Client, cookie::Jar}; -use std::{collections::HashMap, fs, sync::Arc}; +use std::{collections::HashMap, fs, path::PathBuf, sync::Arc}; /// Reads the cookies.json file and builds an authenticated reqwest client. -pub fn build_authenticated_client(cookies_path: &str) -> Result<Client> { +pub fn build_authenticated_client(cookies_path: &PathBuf) -> Result<Client> { // Read the JSON file. - let cookies_content = fs::read_to_string(cookies_path) - .with_context(|| format!("Failed to read cookies file from: {}", cookies_path))?; + println!("Reading cookies from {cookies_path:?}..."); + let cookies_content = fs::read(cookies_path) + .with_context(|| format!("Failed to read cookies file from {cookies_path:?}."))?; // Parse the JSON into a Rust HashMap. - let cookies_map: HashMap<String, String> = serde_json::from_str(&cookies_content) + let cookies_map: HashMap<String, String> = serde_json::from_slice(&cookies_content) .context("Failed to parse cookies file. Ensure it is a flat key-value JSON object.")?; // Create a Cookie Jar. |
