Files
helvoirtgevelreiniging.nl/scripts/gen-over-ons-media.mjs
T

32 lines
1.9 KiB
JavaScript

/**
* Zet de huidige Over ons-foto's écht in de mediabibliotheek (R2 + `media`-tabel) en
* koppelt ze aan de beeldvelden, zodat ze in het CMS-veld zichtbaar zijn (niet leeg).
* Lokaal provider: storage_key == R2-objectkey; src wordt op displaytijd afgeleid.
* Print de R2-keys zodat de PowerShell-stap de juiste bestanden uploadt.
*/
import { ulid } from "ulidx";
import { writeFileSync, mkdirSync } from "node:fs";
const heroId = ulid();
const storyId = ulid();
const q = (s) => "'" + String(s).replace(/'/g, "''") + "'";
const heroAlt = "Schone, verzorgde gevel van een woonhuis na reiniging";
const storyAlt = "Vakman aan het werk aan het voegwerk van een gevel";
const heroVal = { id: heroId, provider: "local", filename: "over-ons-hero.webp", mimeType: "image/webp", width: 1280, height: 714, alt: heroAlt, meta: { storageKey: heroId + ".webp" } };
const storyVal = { id: storyId, provider: "local", filename: "over-ons-verhaal.webp", mimeType: "image/webp", width: 738, height: 983, alt: storyAlt, meta: { storageKey: storyId + ".webp" } };
const sql = `-- Over ons: huidige foto's in de mediabibliotheek + gekoppeld aan de beeldvelden.
INSERT OR REPLACE INTO media (id, filename, mime_type, size, width, height, alt, storage_key, status, created_at) VALUES
(${q(heroId)}, 'over-ons-hero.webp', 'image/webp', 158222, 1280, 714, ${q(heroAlt)}, ${q(heroId + ".webp")}, 'ready', datetime('now')),
(${q(storyId)}, 'over-ons-verhaal.webp', 'image/webp', 181398, 738, 983, ${q(storyAlt)}, ${q(storyId + ".webp")}, 'ready', datetime('now'));
UPDATE ec_over_ons SET hero_image=${q(JSON.stringify(heroVal))} WHERE slug='main';
UPDATE ec_over_ons SET story_image=${q(JSON.stringify(storyVal))} WHERE slug='main';
`;
mkdirSync("migrations", { recursive: true });
writeFileSync("migrations/0006_over_ons_media.sql", sql, "utf8");
console.log("HERO_KEY=" + heroId + ".webp");
console.log("STORY_KEY=" + storyId + ".webp");