guoziyun 3 weken geleden
bovenliggende
commit
85463fec76

BIN
docs/Mintergal-Playturbo.pdf


File diff suppressed because it is too large
+ 8 - 0
platform/client/dist/assets/index-0G6wIYVf.js


File diff suppressed because it is too large
+ 0 - 8
platform/client/dist/assets/index-BrX0d4nt.js


File diff suppressed because it is too large
+ 0 - 0
platform/client/dist/assets/index-DrsA2kn0.css


+ 2 - 2
platform/client/dist/index.html

@@ -4,8 +4,8 @@
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>Playable Ads Platform</title>
-    <script type="module" crossorigin src="/ads/assets/index-BrX0d4nt.js"></script>
-    <link rel="stylesheet" crossorigin href="/ads/assets/index-DhG4rUbp.css">
+    <script type="module" crossorigin src="/ads/assets/index-0G6wIYVf.js"></script>
+    <link rel="stylesheet" crossorigin href="/ads/assets/index-DrsA2kn0.css">
   </head>
   <body>
     <div id="root"></div>

+ 2 - 0
platform/server/dist/index.js

@@ -32,6 +32,8 @@ async function main() {
     app.use("/api/v1", (0, assets_1.assetsRouter)(db, STORAGE_DIR));
     app.use("/api/v1", (0, builds_1.buildsRouter)(db, STORAGE_DIR, preview_2.onThemeSaved));
     app.use("/api/v1", (0, preview_1.previewRouter)(db, STORAGE_DIR));
+    // 构建预览文件(真机扫码测试)
+    app.use("/q", express_1.default.static(path_1.default.join(STORAGE_DIR, "previews")));
     // 生产环境:serve React 静态文件
     app.use(express_1.default.static(CLIENT_DIST));
     app.get("*", (_req, res) => {

+ 1 - 1
platform/server/dist/index.js.map

@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,gDAAwB;AACxB,4CAA6C;AAC7C,oCAA0C;AAC1C,kDAAqD;AACrD,kDAAqD;AACrD,4CAA+C;AAC/C,4CAA+C;AAC/C,8CAAiD;AACjD,8CAAgD;AAChD,4DAAyD;AAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AACtC,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAEjE,KAAK,UAAU,IAAI;IACjB,SAAS;IACT,MAAM,EAAE,GAAG,IAAA,uBAAY,EAAC,WAAW,CAAC,CAAC;IACrC,IAAA,oBAAa,EAAC,EAAE,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM;IACN,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,SAAS;IACT,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,2BAAe,EAAC,EAAE,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,2BAAe,EAAC,EAAE,EAAE,WAAW,EAAE,sBAAY,CAAC,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,qBAAY,EAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,qBAAY,EAAC,EAAE,EAAE,WAAW,EAAE,sBAAY,CAAC,CAAC,CAAC;IAChE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,uBAAa,EAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEnD,wBAAwB;IACxB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACzB,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,GAAG,CAAC,GAAG,CAAC,2BAAY,CAAC,CAAC;IAEtB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,iDAAiD,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,gDAAwB;AACxB,4CAA6C;AAC7C,oCAA0C;AAC1C,kDAAqD;AACrD,kDAAqD;AACrD,4CAA+C;AAC/C,4CAA+C;AAC/C,8CAAiD;AACjD,8CAAgD;AAChD,4DAAyD;AAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AACtC,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAEjE,KAAK,UAAU,IAAI;IACjB,SAAS;IACT,MAAM,EAAE,GAAG,IAAA,uBAAY,EAAC,WAAW,CAAC,CAAC;IACrC,IAAA,oBAAa,EAAC,EAAE,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM;IACN,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,SAAS;IACT,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,2BAAe,EAAC,EAAE,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,2BAAe,EAAC,EAAE,EAAE,WAAW,EAAE,sBAAY,CAAC,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,qBAAY,EAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,qBAAY,EAAC,EAAE,EAAE,WAAW,EAAE,sBAAY,CAAC,CAAC,CAAC;IAChE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,uBAAa,EAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEnD,iBAAiB;IACjB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAElE,wBAAwB;IACxB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACzB,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,GAAG,CAAC,GAAG,CAAC,2BAAY,CAAC,CAAC;IAEtB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,iDAAiD,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}

+ 1 - 1
platform/server/dist/routes/builds.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"builds.d.ts","sourceRoot":"","sources":["../../src/routes/builds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAMtC,KAAK,kBAAkB,GAAG,CACxB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,KACf,IAAI,CAAC;AAEV,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,kBAAkB,GAChC,MAAM,CAiLR"}
+{"version":3,"file":"builds.d.ts","sourceRoot":"","sources":["../../src/routes/builds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAMtC,KAAK,kBAAkB,GAAG,CACxB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,KACf,IAAI,CAAC;AAEV,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,kBAAkB,GAChC,MAAM,CAsLR"}

+ 3 - 0
platform/server/dist/routes/builds.js

@@ -68,6 +68,7 @@ function buildsRouter(db, storageDir, onThemeSaved) {
                 creativeId: b.creative_id,
                 status: b.status,
                 platforms: JSON.parse(b.platforms),
+                previewUrl: b.status === "completed" ? `/q/${b.id}.html` : null,
                 results: b.results ? JSON.parse(b.results) : null,
                 errorLog: b.error_log,
                 startedAt: b.started_at,
@@ -85,10 +86,12 @@ function buildsRouter(db, storageDir, onThemeSaved) {
             res.status(404).json({ error: { message: "Build not found" } });
             return;
         }
+        const previewUrl = build.status === "completed" ? `/q/${build.id}.html` : null;
         res.json({
             data: {
                 id: build.id,
                 status: build.status,
+                previewUrl,
                 results: build.results ? JSON.parse(build.results) : null,
                 errorLog: build.error_log,
                 startedAt: build.started_at,

File diff suppressed because it is too large
+ 0 - 0
platform/server/dist/routes/builds.js.map


+ 1 - 1
platform/server/dist/services/buildService.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"buildService.d.ts","sourceRoot":"","sources":["../../src/services/buildService.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,qBAAa,YAAY;IAIX,OAAO,CAAC,EAAE;IAAqB,OAAO,CAAC,UAAU;IAH7D,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,OAAO,CAAS;gBAEJ,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAU,UAAU,EAAE,MAAM;IAErE,OAAO,CACL,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,IAAI;YAOO,YAAY;YAaZ,KAAK;IAiFnB,OAAO,CAAC,YAAY;YAkBN,aAAa;IAmB3B,OAAO,CAAC,SAAS;CAwBlB"}
+{"version":3,"file":"buildService.d.ts","sourceRoot":"","sources":["../../src/services/buildService.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,qBAAa,YAAY;IAIX,OAAO,CAAC,EAAE;IAAqB,OAAO,CAAC,UAAU;IAH7D,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,OAAO,CAAS;gBAEJ,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAU,UAAU,EAAE,MAAM;IAErE,OAAO,CACL,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,IAAI;YAOO,YAAY;YAaZ,KAAK;IAyFnB,OAAO,CAAC,YAAY;YAkBN,aAAa;IAmB3B,OAAO,CAAC,SAAS;CAwBlB"}

+ 8 - 1
platform/server/dist/services/buildService.js

@@ -68,7 +68,14 @@ class BuildService {
                 await this.runViteBuild(platform);
                 await this.collectOutput(buildOutputDir, platform, results);
             }
-            // 5. 打包 ZIP
+            // 5. 复制默认产物到预览目录(供真机扫码测试)
+            const defaultDist = path_1.default.join(TEMPLATE_DIR, "dist", "index.html");
+            const previewDir = path_1.default.join(this.storageDir, "previews");
+            (0, storageService_1.ensureDir)(previewDir);
+            const previewPath = path_1.default.join(previewDir, `${buildId}.html`);
+            fs_1.default.copyFileSync(defaultDist, previewPath);
+            console.log(`[build] Preview file: ${previewPath}`);
+            // 6. 打包 ZIP
             await this.createZip(buildOutputDir, results);
             // 6. 更新数据库
             const finishedAt = new Date().toISOString();

File diff suppressed because it is too large
+ 0 - 0
platform/server/dist/services/buildService.js.map


+ 1 - 1
platform/server/dist/services/configGenerator.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"configGenerator.d.ts","sourceRoot":"","sources":["../../src/services/configGenerator.ts"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAuD7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAkBhF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C"}
+{"version":3,"file":"configGenerator.d.ts","sourceRoot":"","sources":["../../src/services/configGenerator.ts"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAwD7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAkBhF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C"}

+ 2 - 1
platform/server/dist/services/configGenerator.js

@@ -63,7 +63,8 @@ function generateAdConfig(input) {
     lines.push(`  bgGradient: ${JSON.stringify(input.theme.bgGradient || "linear-gradient(160deg, #fff9f2 0%, #ffeedd 100%)")},`);
     lines.push(`  ctaGradient: ${JSON.stringify(input.theme.ctaGradient || "linear-gradient(135deg, #ff5f1f 0%, #ffb300 100%)")},`);
     lines.push(`  ctaText: ${JSON.stringify(input.theme.ctaText || "PLAY NOW")},`);
-    lines.push(`  progressColor: ${JSON.stringify(input.theme.progressColor || "#07ce07")},`);
+    lines.push(`  frameColor: ${JSON.stringify(input.theme.frameColor || "#edce9b")},`);
+    lines.push(`  frameLineWidth: ${JSON.stringify(Number(input.theme.frameLineWidth) || 16)},`);
     lines.push("};");
     return lines.join("\n") + "\n";
 }

File diff suppressed because it is too large
+ 0 - 0
platform/server/dist/services/configGenerator.js.map


Some files were not shown because too many files changed in this diff