From 300e6b4b253eca7589bd16a8a5acd7b77a981e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Mon, 6 Apr 2026 18:53:27 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=89=AA=E8=BE=91=E5=8F=B0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=A7=86=E9=A2=91=E8=A1=A5=E5=85=A8=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E9=A1=B9=E7=9B=AE=E4=BB=A5=E5=8F=8A=E5=89=A7?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/assets/getMaterialData.ts | 6 ++++-- src/types/database.d.ts | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/routes/assets/getMaterialData.ts b/src/routes/assets/getMaterialData.ts index 77a9fa8..e269bd8 100644 --- a/src/routes/assets/getMaterialData.ts +++ b/src/routes/assets/getMaterialData.ts @@ -10,14 +10,16 @@ export default router.post( "/", validateFields({ projectId: z.number(), + scriptId: z.number().optional(), }), async (req, res) => { - const { projectId } = req.body; + const { projectId, scriptId } = req.body; const list = await u .db("o_assets") .leftJoin("o_image", "o_assets.id", "=", "o_image.assetsId") .where("o_assets.type", "clip") .andWhere("projectId", projectId) + .andWhere("scriptId", scriptId) .select("*"); const data = await Promise.all( list.map(async (item) => ({ @@ -34,7 +36,7 @@ export default router.post( type: "clip", }); // 查询o_video表 - const videoRows = await u.db("o_video").where("state", "生成成功").andWhere("projectId", projectId).select("*"); + const videoRows = await u.db("o_video").where("state", "生成成功").andWhere("scriptId", scriptId).andWhere("projectId", projectId).select("*"); // 处理并返回结果 const video = await Promise.all( videoRows.map(async (row) => ({ diff --git a/src/types/database.d.ts b/src/types/database.d.ts index 1af96b9..dc02b6a 100644 --- a/src/types/database.d.ts +++ b/src/types/database.d.ts @@ -1,6 +1,22 @@ -// @db-hash 6fa5017e455bc367c9c902ba574d11b4 +// @db-hash 19c726e36479d905346c772cfa8007ba //该文件由脚本自动生成,请勿手动修改 +export interface _o_project_old_20260404 { + 'artStyle'?: string | null; + 'createTime'?: number | null; + 'directorManual'?: string | null; + 'id'?: number | null; + 'imageModel'?: string | null; + 'imageQuality'?: string | null; + 'intro'?: string | null; + 'mode'?: string | null; + 'name'?: string | null; + 'projectType'?: string | null; + 'type'?: string | null; + 'userId'?: number | null; + 'videoModel'?: string | null; + 'videoRatio'?: string | null; +} export interface memories { 'content': string; 'createTime': number; @@ -231,6 +247,7 @@ export interface o_videoTrack { } export interface DB { + "_o_project_old_20260404": _o_project_old_20260404; "memories": memories; "o_agentDeploy": o_agentDeploy; "o_agentWorkData": o_agentWorkData; From b169cd92c3501debf98f960b341e0e1863b25857 Mon Sep 17 00:00:00 2001 From: zhishi <1951671751@qq.com> Date: Mon, 6 Apr 2026 21:36:21 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/script/delScript.ts | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/routes/script/delScript.ts b/src/routes/script/delScript.ts index 0bcf1e5..e60bdc7 100644 --- a/src/routes/script/delScript.ts +++ b/src/routes/script/delScript.ts @@ -9,13 +9,31 @@ const router = express.Router(); export default router.post( "/", validateFields({ - id: z.array(z.number()), + ids: z.array(z.number()), }), async (req, res) => { - const { id } = req.body; - await u.db("o_script").whereIn("id", id).delete(); - await u.db("o_storyboard").whereIn("scriptId", id).delete(); - await u.db("o_video").whereIn("scriptId", id).delete(); + const { ids } = req.body; + const scriptData = await u.db("o_script").whereIn("id", ids); + if (scriptData && scriptData.length) { + const scriptProjectId = new Set(scriptData.map((item) => item.projectId)); + await u.db("o_agentWorkData").whereIn("projectId", Array.from(scriptProjectId)).whereIn("episodesId", ids).delete(); + } + const storyboardData = await u.db("o_storyboard").whereIn("scriptId", ids); + if (storyboardData.length) { + await Promise.all( + storyboardData.map(async (item) => { + try { + item.filePath && (await u.oss.deleteFile(item.filePath)); + } catch (e) {} + }), + ); + const storyboardIds = storyboardData.map((item) => item.id); + await u.db("o_assets2Storyboard").whereIn("storyboardId", storyboardIds).delete(); + } + await u.db("o_scriptAssets").whereIn("scriptId", ids).delete(); + await u.db("o_script").whereIn("id", ids).delete(); + await u.db("o_storyboard").whereIn("scriptId", ids).delete(); + await u.db("o_video").whereIn("scriptId", ids).delete(); res.status(200).send(success({ message: "删除剧本成功" })); }, ); From 92a3af229d5d0432d79d2ffdd7c84541cd4f1c68 Mon Sep 17 00:00:00 2001 From: zhishi <1951671751@qq.com> Date: Mon, 6 Apr 2026 22:15:13 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=B8=AD=E7=8A=B6=E6=80=81=20=E5=9C=A8=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E9=87=8D=E5=90=AF=E6=97=B6=20=E6=94=B9=E4=B8=BA=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/fixDB.ts | 26 +++++++++++++++++++++++++- src/types/database.d.ts | 19 +------------------ src/utils/db.ts | 3 ++- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/lib/fixDB.ts b/src/lib/fixDB.ts index 31dce79..7d06c60 100644 --- a/src/lib/fixDB.ts +++ b/src/lib/fixDB.ts @@ -1,5 +1,5 @@ import { Knex } from "knex"; - +import db from "@/utils/db"; export default async (knex: Knex): Promise => { const addColumn = async (table: string, column: string, type: string) => { if (!(await knex.schema.hasTable(table))) return; @@ -23,4 +23,28 @@ export default async (knex: Knex): Promise => { }); } }; + await db("o_novel").where("eventState", 0).update({ + eventState: -1, + errorReason: "软件退出导致失败", + }); + await db("o_script").where("extractState", 0).update({ + extractState: -1, + errorReason: "软件退出导致失败", + }); + await db("o_assets").where("promptState", "生成中").update({ + promptState: "生成失败", + promptErrorReason: "软件退出导致失败", + }); + await db("o_image").where("state", "生成中").update({ + state: "生成失败", + errorReason: "软件退出导致失败", + }); + await db("o_storyboard").where("state", "生成中").update({ + state: "生成失败", + reason: "软件退出导致失败", + }); + await db("o_video").where("state", "生成中").update({ + state: "生成失败", + errorReason: "软件退出导致失败", + }); }; diff --git a/src/types/database.d.ts b/src/types/database.d.ts index dc02b6a..1af96b9 100644 --- a/src/types/database.d.ts +++ b/src/types/database.d.ts @@ -1,22 +1,6 @@ -// @db-hash 19c726e36479d905346c772cfa8007ba +// @db-hash 6fa5017e455bc367c9c902ba574d11b4 //该文件由脚本自动生成,请勿手动修改 -export interface _o_project_old_20260404 { - 'artStyle'?: string | null; - 'createTime'?: number | null; - 'directorManual'?: string | null; - 'id'?: number | null; - 'imageModel'?: string | null; - 'imageQuality'?: string | null; - 'intro'?: string | null; - 'mode'?: string | null; - 'name'?: string | null; - 'projectType'?: string | null; - 'type'?: string | null; - 'userId'?: number | null; - 'videoModel'?: string | null; - 'videoRatio'?: string | null; -} export interface memories { 'content': string; 'createTime': number; @@ -247,7 +231,6 @@ export interface o_videoTrack { } export interface DB { - "_o_project_old_20260404": _o_project_old_20260404; "memories": memories; "o_agentDeploy": o_agentDeploy; "o_agentWorkData": o_agentWorkData; diff --git a/src/utils/db.ts b/src/utils/db.ts index 58522b5..ab4bb69 100644 --- a/src/utils/db.ts +++ b/src/utils/db.ts @@ -7,6 +7,7 @@ import initDB from "@/lib/initDB"; // import fixDB from "@/lib/fixDB"; import type { DB } from "@/types/database"; import crypto from "crypto"; +import fixDB from "@/lib/fixDB"; type TableName = keyof DB & string; type RowType = DB[TName]; @@ -35,7 +36,7 @@ const db = knex({ (async () => { await initDB(db); - // await fixDB(db); + await fixDB(db); if (process.env.NODE_ENV == "dev") initKnexType(db); })(); From abe81213f5cfd0361853b22a1ffccb5f3209c475 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Mon, 6 Apr 2026 22:19:27 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=9F=E6=88=90?= =?UTF-8?q?=E8=B5=84=E4=BA=A7=E5=9B=BE=E5=8F=96=E6=B6=88=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router.ts | 464 +++++++++--------- .../batchGenerateImageAssets.ts | 8 +- src/routes/assetsGenerate/cancelGenerate.ts | 22 + src/routes/assetsGenerate/generateAssets.ts | 4 +- src/routes/cornerScape/getAllAssets.ts | 10 +- 5 files changed, 272 insertions(+), 236 deletions(-) create mode 100644 src/routes/assetsGenerate/cancelGenerate.ts diff --git a/src/router.ts b/src/router.ts index 597e80c..b286702 100644 --- a/src/router.ts +++ b/src/router.ts @@ -1,4 +1,4 @@ -// @routes-hash 3fe6b0875d18070c4a2ef9d9f8e97e91 +// @routes-hash 533b8bb2b9e91ff514cd1560e6d1cca8 import { Express } from "express"; import route1 from "./routes/agents/clearMemory"; @@ -22,121 +22,122 @@ import route18 from "./routes/assets/updateAssets"; import route19 from "./routes/assets/uploadClip"; import route20 from "./routes/assetsGenerate/batchGenerateImageAssets"; import route21 from "./routes/assetsGenerate/batchPolishAssetsPrompt"; -import route22 from "./routes/assetsGenerate/generateAssets"; -import route23 from "./routes/assetsGenerate/polishAssetsPrompt"; -import route24 from "./routes/cornerScape/getAllAssets"; -import route25 from "./routes/general/generalStatistics"; -import route26 from "./routes/general/getSingleProject"; -import route27 from "./routes/general/updateProject"; -import route28 from "./routes/login/login"; -import route29 from "./routes/migrate/migrateData"; -import route30 from "./routes/modelSelect/getModelDetail"; -import route31 from "./routes/modelSelect/getModelList"; -import route32 from "./routes/novel/addNovel"; -import route33 from "./routes/novel/batchDeleteNovel"; -import route34 from "./routes/novel/delNovel"; -import route35 from "./routes/novel/event/batchDeleteEvent"; -import route36 from "./routes/novel/event/deletEvent"; -import route37 from "./routes/novel/event/generateEvents"; -import route38 from "./routes/novel/event/getEvent"; -import route39 from "./routes/novel/getNovel"; -import route40 from "./routes/novel/getNovelData"; -import route41 from "./routes/novel/getNovelEventState"; -import route42 from "./routes/novel/getNovelIndex"; -import route43 from "./routes/novel/updateNovel"; -import route44 from "./routes/other/deleteAllData"; -import route45 from "./routes/other/getVersion"; -import route46 from "./routes/production/assets/batchGenerateAssetsImage"; -import route47 from "./routes/production/assets/deleteAssetsDireve"; -import route48 from "./routes/production/assets/getAssetsData"; -import route49 from "./routes/production/assets/pollingImage"; -import route50 from "./routes/production/assets/updateAssetsUrl"; -import route51 from "./routes/production/editImage/generateFlowImage"; -import route52 from "./routes/production/editImage/getImageDefaultModle"; -import route53 from "./routes/production/editImage/getImageFlow"; -import route54 from "./routes/production/editImage/saveImageFlow"; -import route55 from "./routes/production/editImage/updateImageFlow"; -import route56 from "./routes/production/editImage/uploadImage"; -import route57 from "./routes/production/exportImage"; -import route58 from "./routes/production/getFlowData"; -import route59 from "./routes/production/getProductionData"; -import route60 from "./routes/production/getStoryboardData"; -import route61 from "./routes/production/saveFlowData"; -import route62 from "./routes/production/storyboard/addStoryboard"; -import route63 from "./routes/production/storyboard/batchAddStoryboardInfo"; -import route64 from "./routes/production/storyboard/batchGenerateImage"; -import route65 from "./routes/production/storyboard/downPreviewImage"; -import route66 from "./routes/production/storyboard/editStoryboardInfo"; -import route67 from "./routes/production/storyboard/getStoryboardData"; -import route68 from "./routes/production/storyboard/pollingImage"; -import route69 from "./routes/production/storyboard/previewImage"; -import route70 from "./routes/production/storyboard/removeFrame"; -import route71 from "./routes/production/storyboard/updateStoryboardUrl"; -import route72 from "./routes/production/workbench/addTrack"; -import route73 from "./routes/production/workbench/deleteTrack"; -import route74 from "./routes/production/workbench/delVideo"; -import route75 from "./routes/production/workbench/generateVideo"; -import route76 from "./routes/production/workbench/generateVideoPrompt"; -import route77 from "./routes/production/workbench/getGenerateData"; -import route78 from "./routes/production/workbench/getVideoList"; -import route79 from "./routes/production/workbench/getVideoModelDetail"; -import route80 from "./routes/production/workbench/selectVideo"; -import route81 from "./routes/project/addDirectorManual"; -import route82 from "./routes/project/addProject"; -import route83 from "./routes/project/addVisualManual"; -import route84 from "./routes/project/deleteDirectorManual"; -import route85 from "./routes/project/deleteVisualManual"; -import route86 from "./routes/project/delProject"; -import route87 from "./routes/project/editDirectorlManual"; -import route88 from "./routes/project/editProject"; -import route89 from "./routes/project/editVisualManual"; -import route90 from "./routes/project/getProject"; -import route91 from "./routes/project/getVisualManual"; -import route92 from "./routes/project/queryDirectorManual"; -import route93 from "./routes/project/visualManual"; -import route94 from "./routes/script/addScript"; -import route95 from "./routes/script/delScript"; -import route96 from "./routes/script/exportScript"; -import route97 from "./routes/script/extractAssets"; -import route98 from "./routes/script/getScrptApi"; -import route99 from "./routes/script/pollScriptAssets"; -import route100 from "./routes/script/updateScript"; -import route101 from "./routes/scriptAgent/getPlanData"; -import route102 from "./routes/scriptAgent/setPlanData"; -import route103 from "./routes/scriptAgent/updateData"; -import route104 from "./routes/setting/about/checkUpdate"; -import route105 from "./routes/setting/about/downloadApp"; -import route106 from "./routes/setting/agentDeploy/agentSetKey"; -import route107 from "./routes/setting/agentDeploy/deployAgentModel"; -import route108 from "./routes/setting/agentDeploy/getAgentDeploy"; -import route109 from "./routes/setting/dbConfig/clearData"; -import route110 from "./routes/setting/dev/getSwitchAiDevTool"; -import route111 from "./routes/setting/dev/updateSwitchAiDevTool"; -import route112 from "./routes/setting/fileManagement/openFolder"; -import route113 from "./routes/setting/getTextModel"; -import route114 from "./routes/setting/loginConfig/getUser"; -import route115 from "./routes/setting/loginConfig/updateUserPwd"; -import route116 from "./routes/setting/memoryConfig/delAllMemory"; -import route117 from "./routes/setting/memoryConfig/getMemory"; -import route118 from "./routes/setting/memoryConfig/sureMemory"; -import route119 from "./routes/setting/promptManage/getPrompt"; -import route120 from "./routes/setting/promptManage/updatePrompt"; -import route121 from "./routes/setting/skillManagement/getSkillContent"; -import route122 from "./routes/setting/skillManagement/getSkillList"; -import route123 from "./routes/setting/skillManagement/saveSkillContent"; -import route124 from "./routes/setting/vendorConfig/addVendor"; -import route125 from "./routes/setting/vendorConfig/deleteVendor"; -import route126 from "./routes/setting/vendorConfig/enableVendor"; -import route127 from "./routes/setting/vendorConfig/getCodeByLink"; -import route128 from "./routes/setting/vendorConfig/getVendorList"; -import route129 from "./routes/setting/vendorConfig/modelTest"; -import route130 from "./routes/setting/vendorConfig/updateCode"; -import route131 from "./routes/setting/vendorConfig/updateVendor"; -import route132 from "./routes/task/getProject"; -import route133 from "./routes/task/getTaskApi"; -import route134 from "./routes/task/getTaskCategories"; -import route135 from "./routes/task/taskDetails"; -import route136 from "./routes/test/test"; +import route22 from "./routes/assetsGenerate/cancelGenerate"; +import route23 from "./routes/assetsGenerate/generateAssets"; +import route24 from "./routes/assetsGenerate/polishAssetsPrompt"; +import route25 from "./routes/cornerScape/getAllAssets"; +import route26 from "./routes/general/generalStatistics"; +import route27 from "./routes/general/getSingleProject"; +import route28 from "./routes/general/updateProject"; +import route29 from "./routes/login/login"; +import route30 from "./routes/migrate/migrateData"; +import route31 from "./routes/modelSelect/getModelDetail"; +import route32 from "./routes/modelSelect/getModelList"; +import route33 from "./routes/novel/addNovel"; +import route34 from "./routes/novel/batchDeleteNovel"; +import route35 from "./routes/novel/delNovel"; +import route36 from "./routes/novel/event/batchDeleteEvent"; +import route37 from "./routes/novel/event/deletEvent"; +import route38 from "./routes/novel/event/generateEvents"; +import route39 from "./routes/novel/event/getEvent"; +import route40 from "./routes/novel/getNovel"; +import route41 from "./routes/novel/getNovelData"; +import route42 from "./routes/novel/getNovelEventState"; +import route43 from "./routes/novel/getNovelIndex"; +import route44 from "./routes/novel/updateNovel"; +import route45 from "./routes/other/deleteAllData"; +import route46 from "./routes/other/getVersion"; +import route47 from "./routes/production/assets/batchGenerateAssetsImage"; +import route48 from "./routes/production/assets/deleteAssetsDireve"; +import route49 from "./routes/production/assets/getAssetsData"; +import route50 from "./routes/production/assets/pollingImage"; +import route51 from "./routes/production/assets/updateAssetsUrl"; +import route52 from "./routes/production/editImage/generateFlowImage"; +import route53 from "./routes/production/editImage/getImageDefaultModle"; +import route54 from "./routes/production/editImage/getImageFlow"; +import route55 from "./routes/production/editImage/saveImageFlow"; +import route56 from "./routes/production/editImage/updateImageFlow"; +import route57 from "./routes/production/editImage/uploadImage"; +import route58 from "./routes/production/exportImage"; +import route59 from "./routes/production/getFlowData"; +import route60 from "./routes/production/getProductionData"; +import route61 from "./routes/production/getStoryboardData"; +import route62 from "./routes/production/saveFlowData"; +import route63 from "./routes/production/storyboard/addStoryboard"; +import route64 from "./routes/production/storyboard/batchAddStoryboardInfo"; +import route65 from "./routes/production/storyboard/batchGenerateImage"; +import route66 from "./routes/production/storyboard/downPreviewImage"; +import route67 from "./routes/production/storyboard/editStoryboardInfo"; +import route68 from "./routes/production/storyboard/getStoryboardData"; +import route69 from "./routes/production/storyboard/pollingImage"; +import route70 from "./routes/production/storyboard/previewImage"; +import route71 from "./routes/production/storyboard/removeFrame"; +import route72 from "./routes/production/storyboard/updateStoryboardUrl"; +import route73 from "./routes/production/workbench/addTrack"; +import route74 from "./routes/production/workbench/deleteTrack"; +import route75 from "./routes/production/workbench/delVideo"; +import route76 from "./routes/production/workbench/generateVideo"; +import route77 from "./routes/production/workbench/generateVideoPrompt"; +import route78 from "./routes/production/workbench/getGenerateData"; +import route79 from "./routes/production/workbench/getVideoList"; +import route80 from "./routes/production/workbench/getVideoModelDetail"; +import route81 from "./routes/production/workbench/selectVideo"; +import route82 from "./routes/project/addDirectorManual"; +import route83 from "./routes/project/addProject"; +import route84 from "./routes/project/addVisualManual"; +import route85 from "./routes/project/deleteDirectorManual"; +import route86 from "./routes/project/deleteVisualManual"; +import route87 from "./routes/project/delProject"; +import route88 from "./routes/project/editDirectorlManual"; +import route89 from "./routes/project/editProject"; +import route90 from "./routes/project/editVisualManual"; +import route91 from "./routes/project/getProject"; +import route92 from "./routes/project/getVisualManual"; +import route93 from "./routes/project/queryDirectorManual"; +import route94 from "./routes/project/visualManual"; +import route95 from "./routes/script/addScript"; +import route96 from "./routes/script/delScript"; +import route97 from "./routes/script/exportScript"; +import route98 from "./routes/script/extractAssets"; +import route99 from "./routes/script/getScrptApi"; +import route100 from "./routes/script/pollScriptAssets"; +import route101 from "./routes/script/updateScript"; +import route102 from "./routes/scriptAgent/getPlanData"; +import route103 from "./routes/scriptAgent/setPlanData"; +import route104 from "./routes/scriptAgent/updateData"; +import route105 from "./routes/setting/about/checkUpdate"; +import route106 from "./routes/setting/about/downloadApp"; +import route107 from "./routes/setting/agentDeploy/agentSetKey"; +import route108 from "./routes/setting/agentDeploy/deployAgentModel"; +import route109 from "./routes/setting/agentDeploy/getAgentDeploy"; +import route110 from "./routes/setting/dbConfig/clearData"; +import route111 from "./routes/setting/dev/getSwitchAiDevTool"; +import route112 from "./routes/setting/dev/updateSwitchAiDevTool"; +import route113 from "./routes/setting/fileManagement/openFolder"; +import route114 from "./routes/setting/getTextModel"; +import route115 from "./routes/setting/loginConfig/getUser"; +import route116 from "./routes/setting/loginConfig/updateUserPwd"; +import route117 from "./routes/setting/memoryConfig/delAllMemory"; +import route118 from "./routes/setting/memoryConfig/getMemory"; +import route119 from "./routes/setting/memoryConfig/sureMemory"; +import route120 from "./routes/setting/promptManage/getPrompt"; +import route121 from "./routes/setting/promptManage/updatePrompt"; +import route122 from "./routes/setting/skillManagement/getSkillContent"; +import route123 from "./routes/setting/skillManagement/getSkillList"; +import route124 from "./routes/setting/skillManagement/saveSkillContent"; +import route125 from "./routes/setting/vendorConfig/addVendor"; +import route126 from "./routes/setting/vendorConfig/deleteVendor"; +import route127 from "./routes/setting/vendorConfig/enableVendor"; +import route128 from "./routes/setting/vendorConfig/getCodeByLink"; +import route129 from "./routes/setting/vendorConfig/getVendorList"; +import route130 from "./routes/setting/vendorConfig/modelTest"; +import route131 from "./routes/setting/vendorConfig/updateCode"; +import route132 from "./routes/setting/vendorConfig/updateVendor"; +import route133 from "./routes/task/getProject"; +import route134 from "./routes/task/getTaskApi"; +import route135 from "./routes/task/getTaskCategories"; +import route136 from "./routes/task/taskDetails"; +import route137 from "./routes/test/test"; export default async (app: Express) => { app.use("/api/agents/clearMemory", route1); @@ -160,119 +161,120 @@ export default async (app: Express) => { app.use("/api/assets/uploadClip", route19); app.use("/api/assetsGenerate/batchGenerateImageAssets", route20); app.use("/api/assetsGenerate/batchPolishAssetsPrompt", route21); - app.use("/api/assetsGenerate/generateAssets", route22); - app.use("/api/assetsGenerate/polishAssetsPrompt", route23); - app.use("/api/cornerScape/getAllAssets", route24); - app.use("/api/general/generalStatistics", route25); - app.use("/api/general/getSingleProject", route26); - app.use("/api/general/updateProject", route27); - app.use("/api/login/login", route28); - app.use("/api/migrate/migrateData", route29); - app.use("/api/modelSelect/getModelDetail", route30); - app.use("/api/modelSelect/getModelList", route31); - app.use("/api/novel/addNovel", route32); - app.use("/api/novel/batchDeleteNovel", route33); - app.use("/api/novel/delNovel", route34); - app.use("/api/novel/event/batchDeleteEvent", route35); - app.use("/api/novel/event/deletEvent", route36); - app.use("/api/novel/event/generateEvents", route37); - app.use("/api/novel/event/getEvent", route38); - app.use("/api/novel/getNovel", route39); - app.use("/api/novel/getNovelData", route40); - app.use("/api/novel/getNovelEventState", route41); - app.use("/api/novel/getNovelIndex", route42); - app.use("/api/novel/updateNovel", route43); - app.use("/api/other/deleteAllData", route44); - app.use("/api/other/getVersion", route45); - app.use("/api/production/assets/batchGenerateAssetsImage", route46); - app.use("/api/production/assets/deleteAssetsDireve", route47); - app.use("/api/production/assets/getAssetsData", route48); - app.use("/api/production/assets/pollingImage", route49); - app.use("/api/production/assets/updateAssetsUrl", route50); - app.use("/api/production/editImage/generateFlowImage", route51); - app.use("/api/production/editImage/getImageDefaultModle", route52); - app.use("/api/production/editImage/getImageFlow", route53); - app.use("/api/production/editImage/saveImageFlow", route54); - app.use("/api/production/editImage/updateImageFlow", route55); - app.use("/api/production/editImage/uploadImage", route56); - app.use("/api/production/exportImage", route57); - app.use("/api/production/getFlowData", route58); - app.use("/api/production/getProductionData", route59); - app.use("/api/production/getStoryboardData", route60); - app.use("/api/production/saveFlowData", route61); - app.use("/api/production/storyboard/addStoryboard", route62); - app.use("/api/production/storyboard/batchAddStoryboardInfo", route63); - app.use("/api/production/storyboard/batchGenerateImage", route64); - app.use("/api/production/storyboard/downPreviewImage", route65); - app.use("/api/production/storyboard/editStoryboardInfo", route66); - app.use("/api/production/storyboard/getStoryboardData", route67); - app.use("/api/production/storyboard/pollingImage", route68); - app.use("/api/production/storyboard/previewImage", route69); - app.use("/api/production/storyboard/removeFrame", route70); - app.use("/api/production/storyboard/updateStoryboardUrl", route71); - app.use("/api/production/workbench/addTrack", route72); - app.use("/api/production/workbench/deleteTrack", route73); - app.use("/api/production/workbench/delVideo", route74); - app.use("/api/production/workbench/generateVideo", route75); - app.use("/api/production/workbench/generateVideoPrompt", route76); - app.use("/api/production/workbench/getGenerateData", route77); - app.use("/api/production/workbench/getVideoList", route78); - app.use("/api/production/workbench/getVideoModelDetail", route79); - app.use("/api/production/workbench/selectVideo", route80); - app.use("/api/project/addDirectorManual", route81); - app.use("/api/project/addProject", route82); - app.use("/api/project/addVisualManual", route83); - app.use("/api/project/deleteDirectorManual", route84); - app.use("/api/project/deleteVisualManual", route85); - app.use("/api/project/delProject", route86); - app.use("/api/project/editDirectorlManual", route87); - app.use("/api/project/editProject", route88); - app.use("/api/project/editVisualManual", route89); - app.use("/api/project/getProject", route90); - app.use("/api/project/getVisualManual", route91); - app.use("/api/project/queryDirectorManual", route92); - app.use("/api/project/visualManual", route93); - app.use("/api/script/addScript", route94); - app.use("/api/script/delScript", route95); - app.use("/api/script/exportScript", route96); - app.use("/api/script/extractAssets", route97); - app.use("/api/script/getScrptApi", route98); - app.use("/api/script/pollScriptAssets", route99); - app.use("/api/script/updateScript", route100); - app.use("/api/scriptAgent/getPlanData", route101); - app.use("/api/scriptAgent/setPlanData", route102); - app.use("/api/scriptAgent/updateData", route103); - app.use("/api/setting/about/checkUpdate", route104); - app.use("/api/setting/about/downloadApp", route105); - app.use("/api/setting/agentDeploy/agentSetKey", route106); - app.use("/api/setting/agentDeploy/deployAgentModel", route107); - app.use("/api/setting/agentDeploy/getAgentDeploy", route108); - app.use("/api/setting/dbConfig/clearData", route109); - app.use("/api/setting/dev/getSwitchAiDevTool", route110); - app.use("/api/setting/dev/updateSwitchAiDevTool", route111); - app.use("/api/setting/fileManagement/openFolder", route112); - app.use("/api/setting/getTextModel", route113); - app.use("/api/setting/loginConfig/getUser", route114); - app.use("/api/setting/loginConfig/updateUserPwd", route115); - app.use("/api/setting/memoryConfig/delAllMemory", route116); - app.use("/api/setting/memoryConfig/getMemory", route117); - app.use("/api/setting/memoryConfig/sureMemory", route118); - app.use("/api/setting/promptManage/getPrompt", route119); - app.use("/api/setting/promptManage/updatePrompt", route120); - app.use("/api/setting/skillManagement/getSkillContent", route121); - app.use("/api/setting/skillManagement/getSkillList", route122); - app.use("/api/setting/skillManagement/saveSkillContent", route123); - app.use("/api/setting/vendorConfig/addVendor", route124); - app.use("/api/setting/vendorConfig/deleteVendor", route125); - app.use("/api/setting/vendorConfig/enableVendor", route126); - app.use("/api/setting/vendorConfig/getCodeByLink", route127); - app.use("/api/setting/vendorConfig/getVendorList", route128); - app.use("/api/setting/vendorConfig/modelTest", route129); - app.use("/api/setting/vendorConfig/updateCode", route130); - app.use("/api/setting/vendorConfig/updateVendor", route131); - app.use("/api/task/getProject", route132); - app.use("/api/task/getTaskApi", route133); - app.use("/api/task/getTaskCategories", route134); - app.use("/api/task/taskDetails", route135); - app.use("/api/test/test", route136); + app.use("/api/assetsGenerate/cancelGenerate", route22); + app.use("/api/assetsGenerate/generateAssets", route23); + app.use("/api/assetsGenerate/polishAssetsPrompt", route24); + app.use("/api/cornerScape/getAllAssets", route25); + app.use("/api/general/generalStatistics", route26); + app.use("/api/general/getSingleProject", route27); + app.use("/api/general/updateProject", route28); + app.use("/api/login/login", route29); + app.use("/api/migrate/migrateData", route30); + app.use("/api/modelSelect/getModelDetail", route31); + app.use("/api/modelSelect/getModelList", route32); + app.use("/api/novel/addNovel", route33); + app.use("/api/novel/batchDeleteNovel", route34); + app.use("/api/novel/delNovel", route35); + app.use("/api/novel/event/batchDeleteEvent", route36); + app.use("/api/novel/event/deletEvent", route37); + app.use("/api/novel/event/generateEvents", route38); + app.use("/api/novel/event/getEvent", route39); + app.use("/api/novel/getNovel", route40); + app.use("/api/novel/getNovelData", route41); + app.use("/api/novel/getNovelEventState", route42); + app.use("/api/novel/getNovelIndex", route43); + app.use("/api/novel/updateNovel", route44); + app.use("/api/other/deleteAllData", route45); + app.use("/api/other/getVersion", route46); + app.use("/api/production/assets/batchGenerateAssetsImage", route47); + app.use("/api/production/assets/deleteAssetsDireve", route48); + app.use("/api/production/assets/getAssetsData", route49); + app.use("/api/production/assets/pollingImage", route50); + app.use("/api/production/assets/updateAssetsUrl", route51); + app.use("/api/production/editImage/generateFlowImage", route52); + app.use("/api/production/editImage/getImageDefaultModle", route53); + app.use("/api/production/editImage/getImageFlow", route54); + app.use("/api/production/editImage/saveImageFlow", route55); + app.use("/api/production/editImage/updateImageFlow", route56); + app.use("/api/production/editImage/uploadImage", route57); + app.use("/api/production/exportImage", route58); + app.use("/api/production/getFlowData", route59); + app.use("/api/production/getProductionData", route60); + app.use("/api/production/getStoryboardData", route61); + app.use("/api/production/saveFlowData", route62); + app.use("/api/production/storyboard/addStoryboard", route63); + app.use("/api/production/storyboard/batchAddStoryboardInfo", route64); + app.use("/api/production/storyboard/batchGenerateImage", route65); + app.use("/api/production/storyboard/downPreviewImage", route66); + app.use("/api/production/storyboard/editStoryboardInfo", route67); + app.use("/api/production/storyboard/getStoryboardData", route68); + app.use("/api/production/storyboard/pollingImage", route69); + app.use("/api/production/storyboard/previewImage", route70); + app.use("/api/production/storyboard/removeFrame", route71); + app.use("/api/production/storyboard/updateStoryboardUrl", route72); + app.use("/api/production/workbench/addTrack", route73); + app.use("/api/production/workbench/deleteTrack", route74); + app.use("/api/production/workbench/delVideo", route75); + app.use("/api/production/workbench/generateVideo", route76); + app.use("/api/production/workbench/generateVideoPrompt", route77); + app.use("/api/production/workbench/getGenerateData", route78); + app.use("/api/production/workbench/getVideoList", route79); + app.use("/api/production/workbench/getVideoModelDetail", route80); + app.use("/api/production/workbench/selectVideo", route81); + app.use("/api/project/addDirectorManual", route82); + app.use("/api/project/addProject", route83); + app.use("/api/project/addVisualManual", route84); + app.use("/api/project/deleteDirectorManual", route85); + app.use("/api/project/deleteVisualManual", route86); + app.use("/api/project/delProject", route87); + app.use("/api/project/editDirectorlManual", route88); + app.use("/api/project/editProject", route89); + app.use("/api/project/editVisualManual", route90); + app.use("/api/project/getProject", route91); + app.use("/api/project/getVisualManual", route92); + app.use("/api/project/queryDirectorManual", route93); + app.use("/api/project/visualManual", route94); + app.use("/api/script/addScript", route95); + app.use("/api/script/delScript", route96); + app.use("/api/script/exportScript", route97); + app.use("/api/script/extractAssets", route98); + app.use("/api/script/getScrptApi", route99); + app.use("/api/script/pollScriptAssets", route100); + app.use("/api/script/updateScript", route101); + app.use("/api/scriptAgent/getPlanData", route102); + app.use("/api/scriptAgent/setPlanData", route103); + app.use("/api/scriptAgent/updateData", route104); + app.use("/api/setting/about/checkUpdate", route105); + app.use("/api/setting/about/downloadApp", route106); + app.use("/api/setting/agentDeploy/agentSetKey", route107); + app.use("/api/setting/agentDeploy/deployAgentModel", route108); + app.use("/api/setting/agentDeploy/getAgentDeploy", route109); + app.use("/api/setting/dbConfig/clearData", route110); + app.use("/api/setting/dev/getSwitchAiDevTool", route111); + app.use("/api/setting/dev/updateSwitchAiDevTool", route112); + app.use("/api/setting/fileManagement/openFolder", route113); + app.use("/api/setting/getTextModel", route114); + app.use("/api/setting/loginConfig/getUser", route115); + app.use("/api/setting/loginConfig/updateUserPwd", route116); + app.use("/api/setting/memoryConfig/delAllMemory", route117); + app.use("/api/setting/memoryConfig/getMemory", route118); + app.use("/api/setting/memoryConfig/sureMemory", route119); + app.use("/api/setting/promptManage/getPrompt", route120); + app.use("/api/setting/promptManage/updatePrompt", route121); + app.use("/api/setting/skillManagement/getSkillContent", route122); + app.use("/api/setting/skillManagement/getSkillList", route123); + app.use("/api/setting/skillManagement/saveSkillContent", route124); + app.use("/api/setting/vendorConfig/addVendor", route125); + app.use("/api/setting/vendorConfig/deleteVendor", route126); + app.use("/api/setting/vendorConfig/enableVendor", route127); + app.use("/api/setting/vendorConfig/getCodeByLink", route128); + app.use("/api/setting/vendorConfig/getVendorList", route129); + app.use("/api/setting/vendorConfig/modelTest", route130); + app.use("/api/setting/vendorConfig/updateCode", route131); + app.use("/api/setting/vendorConfig/updateVendor", route132); + app.use("/api/task/getProject", route133); + app.use("/api/task/getTaskApi", route134); + app.use("/api/task/getTaskCategories", route135); + app.use("/api/task/taskDetails", route136); + app.use("/api/test/test", route137); } diff --git a/src/routes/assetsGenerate/batchGenerateImageAssets.ts b/src/routes/assetsGenerate/batchGenerateImageAssets.ts index ec753fa..e1aba45 100644 --- a/src/routes/assetsGenerate/batchGenerateImageAssets.ts +++ b/src/routes/assetsGenerate/batchGenerateImageAssets.ts @@ -98,6 +98,10 @@ export default router.post("/", validateFields(requestSchema), async (req, res) const tasks = items.map((item: { id: number; type: string; name: string; prompt: string; base64: string | null | undefined }, index: number) => limit(async () => { const imageId = totalNovelId[index]; + const data = await u.db("o_image").where("id", imageId).select("state").first(); + if (data?.state === "生成失败") { + return; + } const cfg = assetTypeConfig[item.type as AssetType]; if (!cfg) return; @@ -126,8 +130,10 @@ export default router.post("/", validateFields(requestSchema), async (req, res) aiImage.save(imagePath); const imageData = await u.db("o_image").where("id", imageId).select("*").first(); + console.log("%c Line:133 🥒 imageData", "background:#465975", imageData); + if (!imageData) return res.status(500).send("资产已被删除"); if (!imageData) return; - + if (imageData.state === "生成失败") return; await u .db("o_image") .where("id", imageId) diff --git a/src/routes/assetsGenerate/cancelGenerate.ts b/src/routes/assetsGenerate/cancelGenerate.ts new file mode 100644 index 0000000..21f21a1 --- /dev/null +++ b/src/routes/assetsGenerate/cancelGenerate.ts @@ -0,0 +1,22 @@ +import express from "express"; +import u from "@/utils"; +import { z } from "zod"; +import { success } from "@/lib/responseFormat"; +import { validateFields } from "@/middleware/middleware"; +const router = express.Router(); + +// 取消生成 +export default router.post( + "/", + validateFields({ + id: z.number(), + }), + async (req, res) => { + const { id } = req.body; + console.log("%c Line:16 🌭 id", "background:#2eafb0", id); + await u.db("o_image").where("id", id).update({ + state: "生成失败", + }); + res.status(200).send(success({ message: "取消成功" })); + }, +); diff --git a/src/routes/assetsGenerate/generateAssets.ts b/src/routes/assetsGenerate/generateAssets.ts index 1c32f5d..da71f4f 100644 --- a/src/routes/assetsGenerate/generateAssets.ts +++ b/src/routes/assetsGenerate/generateAssets.ts @@ -96,7 +96,6 @@ export default router.post("/", validateFields(requestSchema), async (req, res) const relatedObjects = { id, projectId, type: cfg.label }; try { - // 4. 调用 AI 生成图片 const aiImage = u.Ai.Image(model); await aiImage.run( { @@ -113,11 +112,10 @@ export default router.post("/", validateFields(requestSchema), async (req, res) }, ); aiImage.save(imagePath); - // 5. 更新记录 & 返回结果 const imageData = await u.db("o_image").where("id", imageId).select("*").first(); if (!imageData) return res.status(500).send("资产已被删除"); - + if (imageData.state === "生成失败") return; await u .db("o_image") .where("id", imageId) diff --git a/src/routes/cornerScape/getAllAssets.ts b/src/routes/cornerScape/getAllAssets.ts index 4fa8712..c0446fb 100644 --- a/src/routes/cornerScape/getAllAssets.ts +++ b/src/routes/cornerScape/getAllAssets.ts @@ -16,7 +16,15 @@ export default router.post( const data = await u .db("o_assets") .leftJoin("o_image", "o_assets.imageId", "o_image.id") - .select("o_assets.*", "o_image.filePath", "o_image.state", "o_image.model", "o_image.resolution", "o_image.errorReason") + .select( + "o_assets.*", + "o_image.filePath", + "o_image.state", + "o_image.model", + "o_image.resolution", + "o_image.errorReason", + "o_image.id as imageId", + ) .where("o_assets.projectId", projectId) .andWhere("o_assets.type", "<>", "clip") .andWhere("o_assets.assetsId", null) From 04b0d4483f59d9f681ca1392b4d59bc96228f4c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Mon, 6 Apr 2026 23:04:46 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=8D=E8=A1=A8useData=EF=BC=8C=E5=8E=BB=E6=8E=89=E5=86=97?= =?UTF-8?q?=E4=BD=99=E7=9A=84associationSkills?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/fixDB.ts | 1 + src/lib/initDB.ts | 1 + .../workbench/generateVideoPrompt.ts | 8 +++- src/routes/script/extractAssets.ts | 11 ++++-- src/routes/setting/promptManage/getPrompt.ts | 10 ++++- .../setting/promptManage/updatePrompt.ts | 2 +- src/routes/setting/vendorConfig/addVendor.ts | 1 - src/routes/setting/vendorConfig/updateCode.ts | 2 - .../setting/vendorConfig/updateVendor.ts | 2 - src/types/database.d.ts | 37 ++++++++++++++++++- src/utils/cleanNovel.ts | 10 ++++- 11 files changed, 71 insertions(+), 14 deletions(-) diff --git a/src/lib/fixDB.ts b/src/lib/fixDB.ts index 7d06c60..5550136 100644 --- a/src/lib/fixDB.ts +++ b/src/lib/fixDB.ts @@ -47,4 +47,5 @@ export default async (knex: Knex): Promise => { state: "生成失败", errorReason: "软件退出导致失败", }); + await addColumn("o_prompt", "useData", "text"); }; diff --git a/src/lib/initDB.ts b/src/lib/initDB.ts index ba6e956..ea025ad 100644 --- a/src/lib/initDB.ts +++ b/src/lib/initDB.ts @@ -196,6 +196,7 @@ export default async (knex: Knex, forceInit: boolean = false): Promise => table.string("name"); table.string("type"); table.text("data"); + table.text("useData"); table.primary(["id"]); table.unique(["id"]); }, diff --git a/src/routes/production/workbench/generateVideoPrompt.ts b/src/routes/production/workbench/generateVideoPrompt.ts index a0bf5ca..0c791d3 100644 --- a/src/routes/production/workbench/generateVideoPrompt.ts +++ b/src/routes/production/workbench/generateVideoPrompt.ts @@ -75,6 +75,12 @@ export default router.post( const [id, modelData] = model.split(":"); const projectData = await u.db("o_project").select("*").where({ id: projectId }).first(); const videoPrompt = await u.db("o_prompt").where("type", "videoPromptGeneration").first(); + let videoPromptGeneration = "" as string | undefined; + if (videoPrompt && videoPrompt.useData) { + videoPromptGeneration = videoPrompt.useData; + } else { + videoPromptGeneration = videoPrompt?.data ?? undefined; + } const artStyle = projectData?.artStyle || "无"; const visualManual = u.getArtPrompt(artStyle, "art_skills", "art_storyboard_video"); const content = ` @@ -94,7 +100,7 @@ export default router.post( try { const { text } = await u.Ai.Text("universalAi").invoke({ - system: videoPrompt?.data!, + system: videoPromptGeneration, messages: [ { role: "assistant", diff --git a/src/routes/script/extractAssets.ts b/src/routes/script/extractAssets.ts index cb20786..30b35dc 100644 --- a/src/routes/script/extractAssets.ts +++ b/src/routes/script/extractAssets.ts @@ -65,7 +65,6 @@ export default router.post( if (!scriptIds.length) return res.status(400).send(error("请先选择剧本")); const scripts = await u.db("o_script").whereIn("id", scriptIds); - // 构建 scriptId -> script 内容的映射 const scriptMap = new Map(scripts.map((s: o_script) => [s.id, s])); @@ -198,7 +197,13 @@ export default router.post( return "无需回复用户任何内容"; }, }); - const data = await u.db("o_prompt").where("type", "scriptAssetExtraction").first("data"); + const promptData = await u.db("o_prompt").where("type", "scriptAssetExtraction").first(); + let scriptAssetExtraction = "" as string | undefined; + if (promptData && promptData.useData) { + scriptAssetExtraction = promptData.useData; + } else { + scriptAssetExtraction = promptData?.data ?? undefined; + } const existingHint = existingAssetsList ? `\n\n【已有资产列表】:${existingAssetsList}\n对于已有资产,如果在剧本中出现,只需在 existingAssetRefs 中给出资产名称和对应的 scriptIds 数组即可,无需重复生成 desc/type。对于新发现的资产(不在已有列表中),请在 newAssets 中给出完整信息。` : ""; @@ -207,7 +212,7 @@ export default router.post( { role: "system", content: - data?.data + + scriptAssetExtraction + "\n\n提取剧本中涉及的资产(角色、场景、道具),参考技能 script_assets_extract 规范,结果必须通过 resultTool 工具返回。" + "\n\n注意:本次会同时提供多集剧本,每集剧本以 ===== 【剧本ID: xxx】 ===== 分隔。你需要分析每集剧本使用了哪些资产,并在输出中用 scriptIds 数组标明每个资产在哪些剧本中出现。", }, diff --git a/src/routes/setting/promptManage/getPrompt.ts b/src/routes/setting/promptManage/getPrompt.ts index a698249..ca0228e 100644 --- a/src/routes/setting/promptManage/getPrompt.ts +++ b/src/routes/setting/promptManage/getPrompt.ts @@ -5,6 +5,14 @@ import { success, error } from "@/lib/responseFormat"; const router = express.Router(); export default router.post("/", async (req, res) => { - const data = await u.db("o_prompt").select("*"); + const list = await u.db("o_prompt").select("*"); + const data = await Promise.all( + list.map(async (item) => { + return { + ...item, + data: item.useData ? item.useData : item.data, + }; + }), + ); res.status(200).send(success(data)); }); diff --git a/src/routes/setting/promptManage/updatePrompt.ts b/src/routes/setting/promptManage/updatePrompt.ts index b39dfad..ec2046e 100644 --- a/src/routes/setting/promptManage/updatePrompt.ts +++ b/src/routes/setting/promptManage/updatePrompt.ts @@ -13,7 +13,7 @@ export default router.post( async (req, res) => { const { id, data } = req.body; await u.db("o_prompt").where("id", id).update({ - data, + useData: data, }); res.status(200).send(success(123)); }, diff --git a/src/routes/setting/vendorConfig/addVendor.ts b/src/routes/setting/vendorConfig/addVendor.ts index 19797cd..f293131 100644 --- a/src/routes/setting/vendorConfig/addVendor.ts +++ b/src/routes/setting/vendorConfig/addVendor.ts @@ -35,7 +35,6 @@ const vendorConfigSchema = z.object({ modelName: z.string(), type: z.literal("image"), mode: z.array(z.enum(["text", "singleImage", "multiReference"])), - associationSkills: z.string().optional(), }), z.object({ name: z.string(), diff --git a/src/routes/setting/vendorConfig/updateCode.ts b/src/routes/setting/vendorConfig/updateCode.ts index d0ab2c1..08721bb 100644 --- a/src/routes/setting/vendorConfig/updateCode.ts +++ b/src/routes/setting/vendorConfig/updateCode.ts @@ -36,7 +36,6 @@ const vendorConfigSchema = z.object({ modelName: z.string(), type: z.literal("image"), mode: z.array(z.enum(["text", "singleImage", "multiReference"])), - associationSkills: z.string().optional(), }), z.object({ name: z.string(), @@ -48,7 +47,6 @@ const vendorConfigSchema = z.object({ z.array(z.enum(["audioReference", "videoReference", "textReference", "imageReference"])), ]), ), - associationSkills: z.string().optional(), audio: z.union([z.literal("optional"), z.boolean()]), durationResolutionMap: z.array( z.object({ diff --git a/src/routes/setting/vendorConfig/updateVendor.ts b/src/routes/setting/vendorConfig/updateVendor.ts index 0d066b8..1f9338f 100644 --- a/src/routes/setting/vendorConfig/updateVendor.ts +++ b/src/routes/setting/vendorConfig/updateVendor.ts @@ -33,7 +33,6 @@ export default router.post( modelName: z.string(), type: z.literal("image"), mode: z.array(z.enum(["text", "singleImage", "multiReference"])), - associationSkills: z.string().optional(), }), z.object({ name: z.string(), @@ -45,7 +44,6 @@ export default router.post( z.array(z.enum(["audioReference", "videoReference", "textReference", "imageReference"])), ]), ), - associationSkills: z.string().optional(), audio: z.union([z.literal("optional"), z.boolean()]), durationResolutionMap: z.array( z.object({ diff --git a/src/types/database.d.ts b/src/types/database.d.ts index 1af96b9..8adea86 100644 --- a/src/types/database.d.ts +++ b/src/types/database.d.ts @@ -1,6 +1,37 @@ -// @db-hash 6fa5017e455bc367c9c902ba574d11b4 +// @db-hash 6cd709d9bdfe00c4dc87961a8ebba149 //该文件由脚本自动生成,请勿手动修改 +export interface _o_project_old_20260404 { + 'artStyle'?: string | null; + 'createTime'?: number | null; + 'directorManual'?: string | null; + 'id'?: number | null; + 'imageModel'?: string | null; + 'imageQuality'?: string | null; + 'intro'?: string | null; + 'mode'?: string | null; + 'name'?: string | null; + 'projectType'?: string | null; + 'type'?: string | null; + 'userId'?: number | null; + 'videoModel'?: string | null; + 'videoRatio'?: string | null; +} +export interface _o_prompt_old_20260406 { + 'data'?: string | null; + 'id'?: number; + 'name'?: string | null; + 'type'?: string | null; + 'useData'?: string | null; +} +export interface _o_prompt_old_20260406_1 { + 'data'?: string | null; + 'id'?: number; + 'name'?: string | null; + 'TEXT'?: any | null; + 'type'?: string | null; + 'useData'?: string | null; +} export interface memories { 'content': string; 'createTime': number; @@ -128,6 +159,7 @@ export interface o_prompt { 'id'?: number; 'name'?: string | null; 'type'?: string | null; + 'useData'?: string | null; } export interface o_script { 'content'?: string | null; @@ -231,6 +263,9 @@ export interface o_videoTrack { } export interface DB { + "_o_project_old_20260404": _o_project_old_20260404; + "_o_prompt_old_20260406": _o_prompt_old_20260406; + "_o_prompt_old_20260406_1": _o_prompt_old_20260406_1; "memories": memories; "o_agentDeploy": o_agentDeploy; "o_agentWorkData": o_agentWorkData; diff --git a/src/utils/cleanNovel.ts b/src/utils/cleanNovel.ts index b82d10c..22ed6d9 100644 --- a/src/utils/cleanNovel.ts +++ b/src/utils/cleanNovel.ts @@ -27,9 +27,15 @@ class CleanNovel { private async processChapter(novel: o_novel): Promise { try { const prompt = await u.getPrompts("event"); - const data = await u.db("o_prompt").where("type", "eventExtraction").first("data"); + const promptData = await u.db("o_prompt").where("type", "eventExtraction").first(); + let eventExtraction = "" as string | undefined; + if (promptData && promptData.useData) { + eventExtraction = promptData.useData; + } else { + eventExtraction = promptData?.data ?? undefined; + } const resData = await u.Ai.Text("universalAi").invoke({ - system: data ? JSON.stringify(data.data) : (prompt as string), + system: eventExtraction ? JSON.stringify(eventExtraction) : (prompt as string), messages: [ { role: "user",