← back to Patternbank Archive

scripts/probe.js

23 lines

#!/usr/bin/env node
require('dotenv').config({ path: require('path').join(__dirname, '..', '.env') });
const fs = require('fs');
const { withPage } = require('../src/browser');

(async () => {
  const url = process.argv[2] || 'https://patternbank.com/graphics/';
  const r = await withPage(async (page) => {
    const resp = await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 60000 });
    await page.waitForTimeout(3000);
    for (let s=0;s<6;s++){ await page.evaluate(()=>window.scrollBy(0,2000)); await page.waitForTimeout(500); }
    return { status: resp ? resp.status() : 0, html: await page.content(), finalUrl: page.url(), title: await page.title() };
  });
  console.log('status:', r.status, 'final:', r.finalUrl, 'title:', r.title, 'len:', r.html.length);
  fs.writeFileSync('/tmp/pb-probe.html', r.html);
  console.log('wrote /tmp/pb-probe.html');
  // Quick link audit
  const hrefs = [...new Set([...r.html.matchAll(/href="([^"]+)"/g)].map(m=>m[1]))];
  const graphics = hrefs.filter(h=>/\/graphics\//.test(h)).slice(0, 30);
  console.log('graphics-links sample:', graphics);
  process.exit(0);
})().catch(e => { console.error(e); process.exit(1); });