import {$on} from '../shared' import {configApi} from './api' import { cleanReadTasks, getReadTasks, pauseReadTask, Reader, removeReadTask, resumeReadTask, } from "./reader"; import {handleNetworkEvent} from "./socket"; import { cleanUploadTasks, getUploadTasks, pauseUploadTask, removeUploadTask, resumeUploadTask, } from "./uploader"; // 取消前端任务 async function cancel(data: TaskEventData): Promise { const {fileHash, taskId} = data; await pauseReadTask(taskId); await pauseUploadTask(fileHash, taskId); } // 恢复任务 async function resume(data: TaskEventData): Promise { const {fileHash, taskId} = data; await resumeReadTask(taskId); await resumeUploadTask(fileHash, taskId); } // 清理任务 async function cleanup() { await cleanReadTasks(); await cleanUploadTasks(); } // 创建任务 function create(data: TaskCreateData) { Reader.create(data.file, data.dirid); } // 删除任务 async function remove(data: TaskEventData): Promise { const {fileHash, taskId} = data; await removeReadTask(taskId); await removeUploadTask(fileHash, taskId); } function allTasks(): Task[] { return [ ...getReadTasks(), ...getUploadTasks(), ] } // 配置接口事件 $on("cfg", "init", configApi); // 监听前端任务事件 $on("task", "all", allTasks) $on("task", "cancel", cancel); $on("task", "cleanup", cleanup); $on("task", "create", create); $on("task", "remove", remove); $on("task", "resume", resume); // 网络变化事件 $on("net", "status", handleNetworkEvent);