diff --git a/src-tauri/src/utils/download_manager.rs b/src-tauri/src/utils/download_manager.rs index c826286..bdbfbd7 100644 --- a/src-tauri/src/utils/download_manager.rs +++ b/src-tauri/src/utils/download_manager.rs @@ -1,4 +1,4 @@ -use crate::handlers::server::get_json_server_url; +use crate::handlers::server::{get_json_server_url, get_target_arch_to_store}; use crate::models::download::{ DownloadTask, DownloadTaskResponse, InstallStatus, InstallTask, ResponseStatus, }; @@ -556,6 +556,7 @@ impl DownloadManager { if output.status.success() { println!("安装成功完成"); println!("命令输出: {}", String::from_utf8_lossy(&output.stdout)); + let _ = self.update_download_count(&task.category, &task.pkgname).await; Ok(()) } else { let error_msg = String::from_utf8_lossy(&output.stderr).to_string(); @@ -573,4 +574,32 @@ impl DownloadManager { false } } + + // 更新下载量统计 + pub async fn update_download_count(&self, category: &str, pkgname: &str) -> Result<(), String> { + let url = "https://feedback.spark-app.store/handle_post"; + let client = reqwest::Client::new(); + + let json_body = serde_json::json!({ + "path": format!("{}/{}/{}",get_target_arch_to_store(),category,pkgname) + }); + + match client + .post(url) + .header("Content-Type", "application/json") + .header("User-Agent", UA) + .json(&json_body) + .send() + .await + { + Ok(_) => { + println!("下载量统计更新成功"); + Ok(()) + } + Err(e) => { + eprintln!("下载量统计更新失败: {}", e); + Err(format!("下载量统计更新失败: {}", e)) + } + } + } }