From e247a9fd2afca8aaa5c5ae2f622c567ab4c31a86 Mon Sep 17 00:00:00 2001 From: fanxb Date: Tue, 31 Jan 2023 20:41:38 +0800 Subject: [PATCH] temp --- .../entity/dto/AutoPlanConfigDto.ts | 39 +++++++++++++--- openRenamerBackend/service/AutoPlanService.ts | 44 +++++++++++++++++-- openRenamerBackend/sqls/v004_新增记录表.sql | 19 ++++++++ 3 files changed, 91 insertions(+), 11 deletions(-) create mode 100644 openRenamerBackend/sqls/v004_新增记录表.sql diff --git a/openRenamerBackend/entity/dto/AutoPlanConfigDto.ts b/openRenamerBackend/entity/dto/AutoPlanConfigDto.ts index 19e5054..ccb7076 100644 --- a/openRenamerBackend/entity/dto/AutoPlanConfigDto.ts +++ b/openRenamerBackend/entity/dto/AutoPlanConfigDto.ts @@ -1,9 +1,34 @@ export default interface AutoPlanConfigDto { - paths: Array, - version: Number, - ignoreSeason0: Boolean, - ignorePaths: Array, - deleteSmallVideo: boolean, - rules: Array, - start: boolean + /** + * 待处理的路径 + */ + paths: Array; + /** + * 版本 + */ + version: Number; + /** + * 是否忽略season 0 + */ + ignoreSeason0: Boolean; + /** + * 忽略的文件名 + */ + ignorePaths: Array; + /** + * 是否删除小于2m的视频文件 + */ + deleteSmallVideo: boolean; + /** + * 重命名规则 + */ + rules: Array; + /** + * 是否忽略现有的文件 + */ + ignoreExist: boolean; + /** + * 是否开始任务 + */ + start: boolean; } \ No newline at end of file diff --git a/openRenamerBackend/service/AutoPlanService.ts b/openRenamerBackend/service/AutoPlanService.ts index f03a00b..e43ad08 100644 --- a/openRenamerBackend/service/AutoPlanService.ts +++ b/openRenamerBackend/service/AutoPlanService.ts @@ -11,8 +11,30 @@ import GlobalConfig from 'entity/po/GlobalConfig'; import GlobalConfigService from './GlobalConfigService'; const autoConfigCode = "autoConfig"; +/** + * 需要处理的文件 + */ +let needDeal = new Set(); +/** + * 文件夹变更记录。key:变更前的目录,value:变更后的目录.当needDeal为空时清理pathMap + */ +let pathMap = {}; +/** + * 自动化配置 + */ +let autoConfig: AutoPlanConfigDto = null; + class AutoPlanService { + + static async init() { + let str = await GlobalConfigService.getVal(autoConfigCode); + if (str != null) { + } else { + autoConfig = JSON.parse(str); + } + } + /** * 保存配置 */ @@ -23,12 +45,26 @@ class AutoPlanService { description: "自动化计划配置" }; await GlobalConfigService.insertOrReplace(configBody); - if (!body.start) { - return; + autoConfig = body; + if (body.start && !body.ignoreExist) { + } - let old = await GlobalConfigService.getVal(autoConfigCode); - if (old && old.length) } + + + +} + +/** + * 检查文件名是否被忽略的 + */ +function checkIgnore(str: string): boolean { + for (let i in autoConfig.ignorePaths) { + if (str.match(autoConfig.ignorePaths[i])) { + return true; + } + } + return false; } export default AutoPlanService; diff --git a/openRenamerBackend/sqls/v004_新增记录表.sql b/openRenamerBackend/sqls/v004_新增记录表.sql new file mode 100644 index 0000000..317f05a --- /dev/null +++ b/openRenamerBackend/sqls/v004_新增记录表.sql @@ -0,0 +1,19 @@ +-- 记录已处理过的路径 +CREATE TABLE dealed_file_path ( + key_str TEXT(32) NOT NULL, + "path" TEXT(200) NOT NULL, + CONSTRAINT dealed_file_path_PK PRIMARY KEY (key_str) +); + +CREATE TABLE auto_deal_history ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + createTime INTEGER NOT NULL, + oldName TEXT(200) NOT NULL, + newName TEXT(200) NOT NULL, + -- 说明 + comment TEXT(200) NOT NULL, + -- 1:文件重命名,2:剧集下无季文件夹,自动创建;3:操作失败 + "type" INTEGER NOT NULL, + CONSTRAINT auto_deal_history_PK PRIMARY KEY (id) +); +CREATE INDEX auto_deal_history_createTime_IDX ON auto_deal_history (createTime);