diff --git a/app/templates/index.html b/app/templates/index.html index 482770a..89811db 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -4100,11 +4100,52 @@ if (!this.tasklist || !this.tasklist.selectedType || this.tasklist.selectedType === 'all') return true; const name = task.taskname || task.task_name || ''; let contentType = ''; - const t = (this.calendar.tasks || []).find(x => (x.task_name || x.taskname) === name); - contentType = (t && t.content_type) || 'other'; + + // 优先从任务配置中读取内容类型 + if (task.content_type) { + contentType = task.content_type; + } else if (task.calendar_info && task.calendar_info.extracted && task.calendar_info.extracted.content_type) { + contentType = task.calendar_info.extracted.content_type; + } else { + // 如果任务配置中没有,则从 calendar.tasks 中查找 + const t = (this.calendar.tasks || []).find(x => (x.task_name || x.taskname) === name); + contentType = (t && t.content_type) || 'other'; + } + return contentType === this.tasklist.selectedType; } catch (e) { return true; } }, + // 获取根据当前视图筛选条件过滤后的任务中编号最大的任务 + getLastTaskByCurrentFilter() { + try { + if (!this.formData.tasklist || this.formData.tasklist.length === 0) { + return null; + } + + // 如果当前视图是"全部",返回所有任务中编号最大的任务 + if (!this.tasklist || !this.tasklist.selectedType || this.tasklist.selectedType === 'all') { + return this.formData.tasklist[this.formData.tasklist.length - 1]; + } + + // 根据当前筛选条件过滤任务 + const filteredTasks = this.formData.tasklist.filter(task => { + return this.tasklistFilterByType(task); + }); + + // 如果没有匹配的任务,返回所有任务中编号最大的任务 + if (filteredTasks.length === 0) { + return this.formData.tasklist[this.formData.tasklist.length - 1]; + } + + // 返回过滤后任务中编号最大的任务(最后一个) + return filteredTasks[filteredTasks.length - 1]; + } catch (e) { + // 出错时返回所有任务中编号最大的任务 + return this.formData.tasklist && this.formData.tasklist.length > 0 + ? this.formData.tasklist[this.formData.tasklist.length - 1] + : null; + } + }, // 计算转存进度(已转存/已播出 的百分比,取整),优先使用实时映射 getTransferProgress(task) { try { @@ -6781,16 +6822,33 @@ // 如果有上一个任务,继承保存路径和命名规则 if (this.formData.tasklist.length > 0) { - const lastTask = this.formData.tasklist[this.formData.tasklist.length - 1]; - newTask.savepath = lastTask.savepath || ""; - newTask.pattern = lastTask.pattern || ""; - - // 继承命名规则选择模式 - newTask.use_sequence_naming = lastTask.use_sequence_naming || false; - newTask.use_episode_naming = lastTask.use_episode_naming || false; - newTask.sequence_naming = lastTask.sequence_naming || ""; - newTask.episode_naming = lastTask.episode_naming || ""; - newTask.replace = lastTask.replace || ""; + // 使用新的筛选逻辑:根据当前视图筛选条件获取对应类型中编号最大的任务 + const lastTask = this.getLastTaskByCurrentFilter(); + if (lastTask) { + newTask.savepath = lastTask.savepath || ""; + newTask.pattern = lastTask.pattern || ""; + + // 继承命名规则选择模式 + newTask.use_sequence_naming = lastTask.use_sequence_naming || false; + newTask.use_episode_naming = lastTask.use_episode_naming || false; + newTask.sequence_naming = lastTask.sequence_naming || ""; + newTask.episode_naming = lastTask.episode_naming || ""; + newTask.replace = lastTask.replace || ""; + } + } + + // 根据当前视图筛选条件设置新任务的内容类型 + if (this.tasklist && this.tasklist.selectedType && this.tasklist.selectedType !== 'all') { + // 确保 calendar_info 结构存在 + if (!newTask.calendar_info) { + newTask.calendar_info = {}; + } + if (!newTask.calendar_info.extracted) { + newTask.calendar_info.extracted = {}; + } + // 设置内容类型 + newTask.calendar_info.extracted.content_type = this.tasklist.selectedType; + newTask.content_type = this.tasklist.selectedType; } // 应用全局插件配置到新任务 @@ -11514,16 +11572,19 @@ // 如果有上一个任务,继承保存路径和命名规则 if (this.formData.tasklist && this.formData.tasklist.length > 0) { - const lastTask = this.formData.tasklist[this.formData.tasklist.length - 1]; - this.createTask.taskData.savepath = lastTask.savepath || ""; - this.createTask.taskData.pattern = lastTask.pattern || ""; - this.createTask.taskData.replace = lastTask.replace || ""; - - // 继承命名规则选择模式 - this.createTask.taskData.use_sequence_naming = lastTask.use_sequence_naming || false; - this.createTask.taskData.use_episode_naming = lastTask.use_episode_naming || false; - this.createTask.taskData.sequence_naming = lastTask.sequence_naming || ""; - this.createTask.taskData.episode_naming = lastTask.episode_naming || ""; + // 使用新的筛选逻辑:根据当前视图筛选条件获取对应类型中编号最大的任务 + const lastTask = this.getLastTaskByCurrentFilter(); + if (lastTask) { + this.createTask.taskData.savepath = lastTask.savepath || ""; + this.createTask.taskData.pattern = lastTask.pattern || ""; + this.createTask.taskData.replace = lastTask.replace || ""; + + // 继承命名规则选择模式 + this.createTask.taskData.use_sequence_naming = lastTask.use_sequence_naming || false; + this.createTask.taskData.use_episode_naming = lastTask.use_episode_naming || false; + this.createTask.taskData.sequence_naming = lastTask.sequence_naming || ""; + this.createTask.taskData.episode_naming = lastTask.episode_naming || ""; + } } // 应用全局插件配置