You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

73 lines
1.5 KiB

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<void> {
const {fileHash, taskId} = data;
await pauseReadTask(taskId);
await pauseUploadTask(fileHash, taskId);
}
// 恢复任务
async function resume(data: TaskEventData): Promise<void> {
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<void> {
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);