diff --git a/src/lib.rs b/src/lib.rs index 8329daa..5dcf31b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -696,6 +696,37 @@ impl Client { } } + pub async fn last_import_time(&self) -> Result { + let resp: RpcResponse = reqwest::Client::new() + .get(self.rpc_url.as_str()) + .header(reqwest::header::USER_AGENT, &self.user_agent) + .header(reqwest::header::CONTENT_TYPE, "application/json") + .header(reqwest::header::ACCEPT, "application/json") + .header( + reqwest::header::COOKIE, + self.session.as_ref().context("Not logged in")?, + ) + .json(&json!({ + "id": "ID", + "method": "getLatestImportTime", + "jsonrpc": "2.0" + })) + .send() + .await? + .json() + .await?; + if let Some(e) = resp.error { + bail!("RPC error: {:?}", e); + } + + if let Some(x) = resp.result { + Ok(chrono::NaiveDateTime::from_timestamp_millis(x) + .context("Could not convert Unix timestamp to NaiveDateTime")?) + } else { + bail!("RPC result is null"); + } + } + pub fn construct_bearer(auth: &str) -> String { format!("Bearer {}", auth) }