aboutsummaryrefslogtreecommitdiff
path: root/src/http_client.rs
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2026-03-08 21:06:39 +0300
committerA Farzat <a@farzat.xyz>2026-03-08 21:39:23 +0300
commitab5ce397987bd97c920101a8d393d0fde29b5f74 (patch)
tree3932882f3b741a491681fe8b24c9e74a01836647 /src/http_client.rs
parentd3c2e22de84428229c36a6b81722da40c85387ca (diff)
downloadoreilly-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.rs11
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.