import { writeFile } from "node:fs/promises";
import { join } from "node:path";

const fileReq = await fetch('https://cdn.nhcarrigan.com?prefix=koikatsu');
const files = await fileReq.text();
const keys = files.matchAll(/<Key>(.*?)<\/Key>/g);
const keyNames = [...keys].map((key) => key[1]?.replace("koikatsu/", ""));
const keyHtml = keyNames.map((key) => `<div
          style="
            height: 300px;
            width: 300px;
            border: 2px solid var(--foreground);
          "
        >
          <a href="https://cdn.nhcarrigan.com/koikatsu/${key}" target="_blank">
            <img
              style="height: 250px; max-width: 250px; object-fit: contain"
              src="https://cdn.nhcarrigan.com/koikatsu/${key}"
              alt="Digital art of Naomi."
            />
          </a>
          </div>`);

const html = `<!DOCTYPE html>
<html lang="en">
  <head>
    <title>NHCarrigan</title>
  </head>
  <body>
    <main>
      <h1>Naomi</h1>
      <p>For an interactive 3D reference, visit <a href="https://hub.vroid.com/en/characters/6033404747153826650/models/3483506204509065121" target="_blank" rel="noopener noreferrer">VRoid Hub</a>.</p>
      <section style="display: grid; grid-template-columns: 1fr 1fr 1fr">
        ${keyHtml.join('')}
      </section>
      </main>
      </body>
      <script src="https://cdn.nhcarrigan.com/headers/index.js"></script>
      </html>`;

await writeFile(join(import.meta.dirname, "site", "koikatsu.html"), html, "utf-8");