# Conflicts:
#	src/types/database.d.ts
This commit is contained in:
ACT丶流星雨 2026-04-03 00:32:32 +08:00
commit 57e65160dd
12 changed files with 40 additions and 28 deletions

BIN
data/assets/ending.mp4 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -38,7 +38,6 @@ export default async function startServe(randomPort: Boolean = false) {
console.log("文件目录:", ossDir);
app.use("/oss", express.static(ossDir));
// skills 静态资源
const skillsDir = u.getPath("skills");
if (!fs.existsSync(skillsDir)) {
fs.mkdirSync(skillsDir, { recursive: true });
@ -53,6 +52,14 @@ export default async function startServe(randomPort: Boolean = false) {
express.static(skillsDir),
);
// assets 静态资源
const assetsDir = u.getPath("assets");
if (!fs.existsSync(assetsDir)) {
fs.mkdirSync(assetsDir, { recursive: true });
}
console.log("文件目录:", assetsDir);
app.use("/assets", express.static(assetsDir));
// data/web 静态网站
const webDir = u.getPath("web");
if (fs.existsSync(webDir)) {

View File

@ -26,7 +26,7 @@ export default router.post(
})),
);
//拿到本地片尾视频并插入到data中
const ending = await u.oss.getFileUrl("/ending/1d7a2dfdd0c057823797fdf97677a7a0.mp4");
const ending = await u.oss.getFileUrl("/ending.mp4", "assets");
data.push({
id: 0,
name: "片尾",

View File

@ -16,7 +16,7 @@ export default router.post(
async (req, res) => {
const { id, url, flowId } = req.body;
const [imageId] = await u.db("o_image").insert({
filePath: new URL(url).pathname,
filePath: u.replaceUrl(url),
state: "已完成",
assetsId: id,
});

View File

@ -13,7 +13,15 @@ export default router.post(
}),
async (req, res) => {
const { edges, nodes } = req.body;
nodes.forEach((node: any) => {
if (node.type == "upload") {
node.data.image = node.data.image ? u.replaceUrl(node.data.image) : "";
}
if (node.type == "generated") {
node.data.generatedImage = node.data.generatedImage ? u.replaceUrl(node.data.generatedImage) : "";
}
});
const [insertFlowId] = await u.db("o_imageFlow").insert({
flowData: JSON.stringify({ edges, nodes }),
});

View File

@ -10,39 +10,19 @@ export default router.post(
validateFields({
edges: z.any(),
nodes: z.any(),
id: z.number(),
imageUrl: z.string(),
flowId: z.number(),
episodesId: z.number(),
}),
async (req, res) => {
const { edges, nodes, flowId } = req.body;
nodes.forEach((node: any) => {
if (node.type == "upload") {
node.data.image = node.data.image ? new URL(node.data.image).pathname : "";
node.data.image = node.data.image ? u.replaceUrl(node.data.image) : "";
}
if (node.type == "generated") {
node.data.generatedImage = node.data.generatedImage ? new URL(node.data.generatedImage).pathname : "";
node.data.generatedImage = node.data.generatedImage ? u.replaceUrl(node.data.generatedImage) : "";
}
});
// let imagePath = "";
// try {
// imagePath = new URL(imageUrl).pathname;
// } catch (e) {}
// if (imagePath) {
// if (type == "storyboard") {
// await u.db("o_storyboard").where("id", id).update({
// filePath: imagePath,
// });
// } else {
// const [imageId] = await u.db("o_image").insert({
// filePath: imagePath,
// assetsId: id,
// state: "已完成",
// });
// await u.db("o_assets").where("id", id).update({ imageId });
// }
// }
await u
.db("o_imageFlow")

View File

@ -116,6 +116,7 @@ export default router.post(
prompt: item.prompt ?? "",
desc: item.describe ?? "",
src: item.filePath && (await u.oss.getFileUrl(item.filePath!)),
flowId: item.flowId,
derive: await Promise.all(
childAssetsData
.filter((child) => child.assetsId === item.id)
@ -129,6 +130,7 @@ export default router.post(
src: child.filePath && (await u.oss.getFileUrl(child.filePath!)),
state: child.state ?? "未生成",
errorReason: child?.errorReason ?? "",
flowId: child.flowId,
})),
),
})),
@ -145,6 +147,7 @@ export default router.post(
videoDesc: i.videoDesc,
shouldGenerateImage: i.shouldGenerateImage,
reason: i?.reason ?? "",
flowId: i.flowId,
}))
.sort((a, b) => (a.index ?? 0) - (b.index ?? 0));
res.status(200).send(success(flowData));

View File

@ -35,7 +35,7 @@ export default router.post(
prompt,
duration,
state,
filePath: new URL(src).pathname,
filePath: u.replaceUrl(src),
trackId,
videoDesc,
shouldGenerateImage: src ? 1 : 0,

View File

@ -19,7 +19,7 @@ export default router.post(
.db("o_storyboard")
.where({ id })
.update({
filePath: new URL(url).pathname,
filePath: u.replaceUrl(url),
flowId,
state: "已完成",
shouldGenerateImage:url ? 1 : 0

View File

@ -10,6 +10,7 @@ import task from "@/utils/taskRecord";
import Ai from "@/utils/ai";
import { getPrompts } from "@/utils/getPrompts";
import { getArtPrompt } from "@/utils/getArtPrompt";
import replaceUrl from "@/utils/replaceUrl";
export default {
db,
@ -24,4 +25,5 @@ export default {
task,
getPrompts,
getArtPrompt,
replaceUrl
};

12
src/utils/replaceUrl.ts Normal file
View File

@ -0,0 +1,12 @@
export default function replaceUrl(url: string): string {
if (typeof url !== 'string' || !url.trim()) return '';
let cleanedPath = '';
try {
const pathname = new URL(url).pathname;
cleanedPath = pathname.replace(/^\/oss/, '');
} catch (e) {
// 如果不是有效的URL则直接返回原字符串
cleanedPath = url;
}
return cleanedPath;
}