← back to Govarbitrage
scripts/import-municibid-free.ts
30 lines
// FREE Municibid import via server-rendered /browse HTML parsing. $0, no browser.
// Usage: npx tsx scripts/import-municibid-free.ts [limit]
import { fetchMunicibidFree } from "../src/importers/municibid-free";
import { ingestMany } from "../src/importers/ingest";
import { prisma } from "../src/lib/db";
async function main() {
const limit = Number(process.argv[2] || 100);
console.log(
`[${new Date().toISOString()}] Fetching ${limit} Municibid listings via /browse HTML (FREE)…`,
);
const rows = await fetchMunicibidFree({ limit });
console.log(`Fetched ${rows.length}. Ingesting…`);
const results = await ingestMany(rows, { useAI: false });
const created = results.filter((r) => r.ok && r.created).length;
const updated = results.filter((r) => r.ok && !r.created).length;
const failed = results.filter((r) => !r.ok).length;
console.log(
`Done: ${created} created, ${updated} updated, ${failed} failed. Cost: $0.`,
);
await prisma.$disconnect();
}
main().catch(async (e) => {
console.error("[import-municibid-free] ERROR:", e.message);
await prisma.$disconnect();
process.exit(1);
});