From e593b3d2700178c67a196c11afeed113b0466e87 Mon Sep 17 00:00:00 2001 From: zhishi <1951671751@qq.com> Date: Mon, 23 Mar 2026 21:19:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E6=B8=85=E6=B4=97=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E5=8E=9F=E5=9B=A0=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/initDB.ts | 1 + src/routes/novel/addNovel.ts | 2 +- src/routes/novel/event/generateEvents.ts | 2 +- src/routes/novel/getNovel.ts | 2 +- src/types/database.d.ts | 15 ++++++++++++++- src/utils/cleanNovel.ts | 2 +- 6 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/lib/initDB.ts b/src/lib/initDB.ts index 12e4d2a..334ed68 100644 --- a/src/lib/initDB.ts +++ b/src/lib/initDB.ts @@ -204,6 +204,7 @@ export default async (knex: Knex, forceInit: boolean = false): Promise => table.integer("projectId"); table.integer("eventState"); table.text("event"); + table.text("errorReason"); table.integer("createTime"); table.primary(["id"]); table.unique(["id"]); diff --git a/src/routes/novel/addNovel.ts b/src/routes/novel/addNovel.ts index ed672de..f629679 100644 --- a/src/routes/novel/addNovel.ts +++ b/src/routes/novel/addNovel.ts @@ -40,7 +40,7 @@ export default router.post( await u .db("o_novel") .where("id", item.id) - .update({ event: item.event, eventState: item.event ? 1 : -1 }); + .update({ event: item.event, eventState: item.event ? 1 : -1, errorReason: item?.errReason ?? null }); }); novelClass.start(chapterAllList, projectId); diff --git a/src/routes/novel/event/generateEvents.ts b/src/routes/novel/event/generateEvents.ts index 1e50eee..96d10fc 100644 --- a/src/routes/novel/event/generateEvents.ts +++ b/src/routes/novel/event/generateEvents.ts @@ -26,7 +26,7 @@ export default router.post( await u .db("o_novel") .where("id", item.id) - .update({ event: item.event, eventState: item.event ? 1 : -1 }); + .update({ event: item.event, eventState: item.event ? 1 : -1, errorReason: item?.errorReason ?? null }); }); novel.start(allChapters, projectId); diff --git a/src/routes/novel/getNovel.ts b/src/routes/novel/getNovel.ts index da4ebc6..802c0b8 100644 --- a/src/routes/novel/getNovel.ts +++ b/src/routes/novel/getNovel.ts @@ -20,7 +20,7 @@ export default router.post( const data = await u .db("o_novel") .where("projectId", projectId) - .select("id", "chapterIndex as index", "reel", "chapter", "chapterData", "event", "eventState") + .select("id", "chapterIndex as index", "reel", "chapter", "chapterData", "event", "eventState", "errorReason") .andWhere((qb) => { if (search) { qb.where("chapter", "like", `%${search}%`); diff --git a/src/types/database.d.ts b/src/types/database.d.ts index 7e0021e..66a078c 100644 --- a/src/types/database.d.ts +++ b/src/types/database.d.ts @@ -1,6 +1,17 @@ -// @db-hash 3cdc2f747dac456ddd4bbfd877efe991 +// @db-hash cb0c490907acc0c671f064a309397e4e //该文件由脚本自动生成,请勿手动修改 +export interface _o_novel_old_20260323 { + 'chapter'?: string | null; + 'chapterData'?: string | null; + 'chapterIndex'?: number | null; + 'createTime'?: number | null; + 'event'?: string | null; + 'eventState'?: number | null; + 'id'?: number; + 'projectId'?: number | null; + 'reel'?: string | null; +} export interface memories { 'content': string; 'createTime': number; @@ -79,6 +90,7 @@ export interface o_novel { 'chapterData'?: string | null; 'chapterIndex'?: number | null; 'createTime'?: number | null; + 'errorReason'?: string | null; 'event'?: string | null; 'eventState'?: number | null; 'id'?: number; @@ -191,6 +203,7 @@ export interface o_videoConfig { } export interface DB { + "_o_novel_old_20260323": _o_novel_old_20260323; "memories": memories; "o_agentDeploy": o_agentDeploy; "o_artStyle": o_artStyle; diff --git a/src/utils/cleanNovel.ts b/src/utils/cleanNovel.ts index 913b60a..171ade2 100644 --- a/src/utils/cleanNovel.ts +++ b/src/utils/cleanNovel.ts @@ -60,7 +60,7 @@ class CleanNovel { this.emitter.emit("item", { id: novel.id, event: preData }); totalEvent.push({ id: novel.id!, event: preData }); } catch (e) { - this.emitter.emit("item", { id: novel.id, event: null }); + this.emitter.emit("item", { id: novel.id, event: null, errorReason: u.error(e).message }); } } } catch (e) {