Merge branch '108' of https://github.com/HBAI-Ltd/Toonflow-app into 108
This commit is contained in:
commit
2495567c66
@ -1,4 +1,4 @@
|
|||||||
name
|
name
|
||||||
123123
|
123123水电费水电费水电费水电费水电费
|
||||||
123123123
|
123123123
|
||||||
123123123
|
123123123
|
||||||
@ -1 +0,0 @@
|
|||||||
123123
|
|
||||||
1
data/skills/art_prompts/你好/README.md
Normal file
1
data/skills/art_prompts/你好/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
1212水电费水电费萨芬的水电费
|
||||||
1
data/skills/art_prompts/你好/art_prompt/art_character.md
Normal file
1
data/skills/art_prompts/你好/art_prompt/art_character.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
1
data/skills/art_prompts/你好/art_prompt/art_prop.md
Normal file
1
data/skills/art_prompts/你好/art_prompt/art_prop.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
1
data/skills/art_prompts/你好/art_prompt/art_scene.md
Normal file
1
data/skills/art_prompts/你好/art_prompt/art_scene.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
1
data/skills/art_prompts/你好/art_prompt/art_storyboard.md
Normal file
1
data/skills/art_prompts/你好/art_prompt/art_storyboard.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
1
data/skills/art_prompts/你好/prefix.md
Normal file
1
data/skills/art_prompts/你好/prefix.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
1212
|
||||||
@ -2,7 +2,7 @@ import express from "express";
|
|||||||
import u from "@/utils";
|
import u from "@/utils";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { success } from "@/lib/responseFormat";
|
import { error, success } from "@/lib/responseFormat";
|
||||||
import { validateFields } from "@/middleware/middleware";
|
import { validateFields } from "@/middleware/middleware";
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ export default router.post(
|
|||||||
|
|
||||||
// 安全校验:不允许包含路径分隔符、纯数字,防止越级删除或误删项目目录
|
// 安全校验:不允许包含路径分隔符、纯数字,防止越级删除或误删项目目录
|
||||||
if (name.includes("/") || name.includes("\\") || name === "." || name === ".." || /^\d+$/.test(name)) {
|
if (name.includes("/") || name.includes("\\") || name === "." || name === ".." || /^\d+$/.test(name)) {
|
||||||
res.status(400).send({ error: "非法的名称" });
|
res.status(400).send(error("名称不能包含路径分隔符或为纯数字"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ export default router.post(
|
|||||||
|
|
||||||
res.status(200).send(success({ message: "删除成功" }));
|
res.status(200).send(success({ message: "删除成功" }));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
res.status(500).send({ error: String(err) });
|
res.status(500).send(error(u.error(err).message || "删除失败"));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import express from "express";
|
import express from "express";
|
||||||
import u from "@/utils";
|
import u from "@/utils";
|
||||||
import { success } from "@/lib/responseFormat";
|
import { error, success } from "@/lib/responseFormat";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { validateFields } from "@/middleware/middleware";
|
import { validateFields } from "@/middleware/middleware";
|
||||||
@ -30,7 +30,7 @@ export default router.post(
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (/^\d+$/.test(name)) {
|
if (/^\d+$/.test(name)) {
|
||||||
res.status(400).send({ error: "名称不能为纯数字" });
|
res.status(400).send(error("名称不能为纯数字"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ export default router.post(
|
|||||||
existingFiles = allFiles.filter((f) => /\.(png|jpe?g|gif|webp|svg)$/i.test(f));
|
existingFiles = allFiles.filter((f) => /\.(png|jpe?g|gif|webp|svg)$/i.test(f));
|
||||||
} catch {}
|
} catch {}
|
||||||
|
|
||||||
const retainedFileNames = new Set(images.filter((item) => item.includes("http")).map((url) => path.basename(new URL(url).pathname)));
|
const retainedFileNames = new Set(images.filter((item) => item.startsWith("http")).map((url) => path.basename(new URL(url).pathname)));
|
||||||
|
|
||||||
for (const file of existingFiles) {
|
for (const file of existingFiles) {
|
||||||
if (!retainedFileNames.has(file)) {
|
if (!retainedFileNames.has(file)) {
|
||||||
@ -89,7 +89,7 @@ export default router.post(
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const item of images) {
|
for (const item of images) {
|
||||||
if (!item.includes("http")) await u.oss.writeFile(`${name}/${u.uuid()}.jpg`, item);
|
if (!item.startsWith("http")) await u.oss.writeFile(`${name}/${u.uuid()}.jpg`, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
res.status(200).send(success());
|
res.status(200).send(success());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user