qualia_client_core/api/
downloads.rs1#![allow(non_snake_case)]
4
5use crate::state::*;
6use std::path::PathBuf;
7
8pub fn get_active_downloads() -> Vec<ProgressPayload> {
9 let state = crate::state::APP_STATE.get().unwrap();
10 state
11 .active_downloads
12 .lock()
13 .unwrap()
14 .values()
15 .cloned()
16 .collect()
17}
18
19pub async fn fetch_remote_manifest(url: String) -> Result<String, String> {
22 reqwest::get(&url)
23 .await
24 .map_err(|e| format!("Network error: {}", e))?
25 .text()
26 .await
27 .map_err(|e| format!("Response error: {}", e))
28}
29
30pub fn imported_accounts_path() -> PathBuf {
33 app_meta_dir().join("imported_accounts.json")
34}
35
36pub fn load_imported_accounts() -> Result<serde_json::Value, String> {
37 let path = imported_accounts_path();
38 if !path.exists() {
39 return Ok(serde_json::json!([]));
40 }
41 let s = std::fs::read_to_string(&path).map_err(|e| e.to_string())?;
42 serde_json::from_str(&s).map_err(|e| e.to_string())
43}
44
45pub fn save_imported_accounts(accounts: serde_json::Value) -> Result<(), String> {
46 let meta = app_meta_dir();
47 std::fs::create_dir_all(&meta).map_err(|e| e.to_string())?;
48 let json = serde_json::to_string_pretty(&accounts).map_err(|e| e.to_string())?;
49 std::fs::write(imported_accounts_path(), json).map_err(|e| e.to_string())
50}