← back to Dw Marketing Reels
chore: colorwheel-reel builder cleanup + dl warn (session close)
f9ce647adb6370e3a86256a5addf3f17a7f8e5c1 · 2026-07-20 13:21:47 -0700 · Steve
Files touched
M package-lock.jsonM package.jsonM scripts/build-colorwheel-reel.mjs
Diff
commit f9ce647adb6370e3a86256a5addf3f17a7f8e5c1
Author: Steve <steve@designerwallcoverings.com>
Date: Mon Jul 20 13:21:47 2026 -0700
chore: colorwheel-reel builder cleanup + dl warn (session close)
---
package-lock.json | 4 ++--
package.json | 2 +-
scripts/build-colorwheel-reel.mjs | 38 +++++++++++++++++++-------------------
3 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 3d4fd81..277eb48 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "dw-marketing-reels",
- "version": "0.6.0",
+ "version": "0.7.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "dw-marketing-reels",
- "version": "0.6.0"
+ "version": "0.7.0"
}
}
}
diff --git a/package.json b/package.json
index c39b667..b4c93e1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "dw-marketing-reels",
- "version": "0.6.0",
+ "version": "0.7.0",
"private": true,
"type": "module",
"description": "DW Marketing — auto-generated New Arrivals reels (HyperFrames) + auth-gated console",
diff --git a/scripts/build-colorwheel-reel.mjs b/scripts/build-colorwheel-reel.mjs
index c257419..23d494a 100644
--- a/scripts/build-colorwheel-reel.mjs
+++ b/scripts/build-colorwheel-reel.mjs
@@ -63,7 +63,21 @@ async function dl(url, dest) {
if (buf.length < 1000) return false;
writeFileSync(dest, buf);
return true;
- } catch { return false; }
+ } catch (e) { console.warn(` dl failed ${url}: ${e.message}`); return false; }
+}
+
+function findMp4(dir) {
+ let newest = null, mt = 0;
+ const walk = d => {
+ for (const e of readdirSync(d, { withFileTypes: true })) {
+ if (e.name === 'node_modules' || e.name.startsWith('.')) continue;
+ const p = join(d, e.name);
+ if (e.isDirectory()) walk(p);
+ else if (e.name.endsWith('.mp4')) { const t = statSync(p).mtimeMs; if (t > mt) { mt = t; newest = p; } }
+ }
+ };
+ walk(dir);
+ return newest;
}
async function main() {
@@ -87,13 +101,13 @@ async function main() {
// download every card image locally for a deterministic render
const imgDir = join(WS, 'assets', 'cw');
mkdirSync(imgDir, { recursive: true });
- let n = 0;
+ let imgIdx = 0;
for (const B of buckets) for (const it of B.items) {
- const dest = join(imgDir, `c${n}.jpg`);
+ const dest = join(imgDir, `c${imgIdx}.jpg`);
const ok = (await dl(it.image_hi, dest)) || (await dl(it.image, dest));
- it._local = ok ? `assets/cw/c${n}.jpg` : it.image;
+ it._local = ok ? `assets/cw/c${imgIdx}.jpg` : it.image;
console.log(` ${ok ? '✓' : '↯'} ${B.key} · ${it.pattern}`);
- n++;
+ imgIdx++;
}
const total = +(HERO + buckets.length * PHASE + OUTRO).toFixed(2);
@@ -307,18 +321,4 @@ ${phaseAnim}
console.log(`✓ reel -> reels/${outName} (${allItems.length} products across ${buckets.length} hues)`);
}
-function findMp4(dir) {
- let newest = null, mt = 0;
- const walk = d => {
- for (const e of readdirSync(d, { withFileTypes: true })) {
- if (e.name === 'node_modules' || e.name.startsWith('.')) continue;
- const p = join(d, e.name);
- if (e.isDirectory()) walk(p);
- else if (e.name.endsWith('.mp4')) { const t = statSync(p).mtimeMs; if (t > mt) { mt = t; newest = p; } }
- }
- };
- walk(dir);
- return newest;
-}
-
main().catch(e => { console.error('✗', e.message); process.exit(1); });
← c1c43c6 Fix Threads post: reposted shop-by-color with correct captio
·
back to Dw Marketing Reels
·
auto-save: 2026-07-21T07:36:20 (2 files) — data/new-arrivals aea6ea1 →