feat: bootstrap commercial AI drama platform
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { mkdir, writeFile } from "node:fs/promises";
|
||||
import { dirname, resolve } from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { sampleProject } from "../src/data/sampleProject.js";
|
||||
import {
|
||||
buildEditList,
|
||||
buildPromptPack,
|
||||
buildShotList,
|
||||
buildVoiceTable
|
||||
} from "../src/lib/exporters.js";
|
||||
import { projectQa } from "../src/lib/qa.js";
|
||||
|
||||
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const out = resolve(root, "exports/project-template");
|
||||
|
||||
const files = [
|
||||
["bible/series-bible.json", sampleProject.series],
|
||||
["shots/shot-list.json", buildShotList(sampleProject)],
|
||||
["shots/prompt-pack.json", buildPromptPack(sampleProject)],
|
||||
["voices/voice-lines.json", buildVoiceTable(sampleProject)],
|
||||
["qa/qa-results.json", projectQa(sampleProject)],
|
||||
["edit/edit-list.json", buildEditList(sampleProject)],
|
||||
["characters/character-locks.json", sampleProject.characters],
|
||||
["locations/location-locks.json", sampleProject.locations],
|
||||
["props/prop-locks.json", sampleProject.props],
|
||||
["final-video/delivery-manifest.json", {
|
||||
schema: "ai-drama-platform.delivery-manifest.v1",
|
||||
episodeId: sampleProject.episode.id,
|
||||
expectedFinal: "final-video/E01_别往树下跑_master.mp4",
|
||||
sourceEditList: "edit/edit-list.json",
|
||||
subtitles: "edit/E01_别往树下跑.zh-CN.srt",
|
||||
audioPolicy: "固定 TTS 声线替换随机原生音轨;环境声可独立保留。"
|
||||
}]
|
||||
];
|
||||
|
||||
for (const [name, value] of files) {
|
||||
const target = resolve(out, name);
|
||||
await mkdir(dirname(target), { recursive: true });
|
||||
await writeFile(target, `${JSON.stringify(value, null, 2)}\n`, "utf8");
|
||||
}
|
||||
|
||||
console.log(`sample exports written to ${out}`);
|
||||
Reference in New Issue
Block a user