begin download handler

This commit is contained in:
SpikeHD
2022-05-09 19:09:02 -07:00
parent 094b8ab7d3
commit 045b3d3902
3 changed files with 45 additions and 2 deletions

View File

@@ -13,7 +13,7 @@ use tauri::{
// and docs ofc
#[tauri::command]
pub async fn download_file(url: &str, path: &str) -> Result<(), String> {
pub async fn download_file(window: tauri::Window, url: &str, path: &str) -> Result<(), String> {
// Reqwest setup
let res = reqwest::get(url)
.await
@@ -42,10 +42,29 @@ pub async fn download_file(url: &str, path: &str) -> Result<(), String> {
let new = min(downloaded + (chunk.len() as u64), total_size);
downloaded = new;
let mut resHash = std::collections::HashMap::new();
resHash.insert(
"downloaded".to_string(),
downloaded.to_string()
);
resHash.insert(
"total".to_string(),
total_size.to_string()
);
resHash.insert(
"path".to_string(),
path.to_string()
);
// Create event to send to frontend
window.emit("download_progress", &resHash);
}
// One more "finish" event
window.emit("download_finished", &path);
// We are done
return Ok(());

View File

@@ -14,6 +14,7 @@ use opener;
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![run_program])
.invoke_handler(tauri::generate_handler![downloader::download_file])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}

View File

@@ -1,5 +1,28 @@
import { invoke } from '@tauri-apps/api/tauri'
import { listen } from '@tauri-apps/api/event'
export default class DownloadHandler {
downloads: Array<string>
// Pass tauri invoke function
constructor() {
console.log('AAAAAAAAAAAAAAAAAAAAA')
this.downloads = []
listen('download_progress', (...payload) => {
console.log(payload)
})
listen('download_finished', (...payload) => {
console.log(payload)
})
}
addDownload(url: string, path: string) {
// Begin download from rust backend
invoke('download_file', { url, path })
// Register event handler
this.downloads.push(path)
}
}