添加收藏和下载队列

This commit is contained in:
柚子
2025-02-06 16:43:09 +08:00
parent b2f458f3b8
commit 56fa6a8a2d
29 changed files with 1284 additions and 19 deletions

68
src/lib/api/download.ts Normal file
View File

@@ -0,0 +1,68 @@
import { invoke } from "@tauri-apps/api/core";
import { DownloadTask } from "@/types/download";
/**
* 获取下载列表
* @returns Promise<DownloadTask[]>
*/
export async function getDownloads(): Promise<DownloadTask[]> {
try {
return await invoke<DownloadTask[]>("get_downloads");
} catch (error) {
throw new Error(`获取下载列表失败: ${error}`);
}
}
/**
* 添加下载任务
* @param category 应用分类
* @param pkgname 应用包名
* @param filename 文件名
* @param name 应用名称
*/
export async function addDownload(category: string, pkgname: string, filename: string, name: string): Promise<void> {
try {
await invoke("add_download", { category, pkgname, filename, name });
} catch (error) {
throw new Error(`添加下载任务失败: ${error}`);
}
}
/**
* 暂停下载任务
* @param category 应用分类
* @param pkgname 应用包名
*/
export async function pauseDownload(category: string, pkgname: string): Promise<void> {
try {
await invoke("pause_download", { category, pkgname });
} catch (error) {
throw new Error(`暂停下载任务失败: ${error}`);
}
}
/**
* 继续下载任务
* @param category 应用分类
* @param pkgname 应用包名
*/
export async function resumeDownload(category: string, pkgname: string): Promise<void> {
try {
await invoke("resume_download", { category, pkgname });
} catch (error) {
throw new Error(`继续下载任务失败: ${error}`);
}
}
/**
* 取消下载任务
* @param category 应用分类
* @param pkgname 应用包名
*/
export async function cancelDownload(category: string, pkgname: string): Promise<void> {
try {
await invoke("cancel_download", { category, pkgname });
} catch (error) {
throw new Error(`取消下载任务失败: ${error}`);
}
}

27
src/lib/api/file.ts Normal file
View File

@@ -0,0 +1,27 @@
import { invoke } from "@tauri-apps/api/core";
/**
* 保存文本文件到配置目录
* @param filename 文件名
* @param content 文件内容
*/
export async function saveTextFile(filename: string, content: string): Promise<void> {
try {
await invoke('save_text_file', { filename, content });
} catch (error) {
throw new Error(`保存文件失败: ${error}`);
}
}
/**
* 从配置目录读取文本文件
* @param filename 文件名
* @returns 文件内容
*/
export async function readTextFile(filename: string): Promise<string> {
try {
return await invoke('read_text_file', { filename });
} catch (error) {
throw new Error(`读取文件失败: ${error}`);
}
}