import { DB } from "https://deno.land/x/sqlite/mod.ts"; import { parse } from "https://deno.land/std@0.211.0/csv/mod.ts"; async function readCSV(filepath: string) { const fileContents = await Deno.readTextFile(filepath); const result = await parse(fileContents, { skipFirstRow: true, columns: ["pubkey", "balance", "updated_at"], }); return result; } function convertToUnixTimestamp(dateStr: string): number { const date = new Date(dateStr); return Math.floor(date.getTime() / 1000); } const db = new DB("pubkeys.db"); db.query(` CREATE TABLE IF NOT EXISTS subscribers ( pubkey TEXT PRIMARY KEY, created_at INTEGER, balance INTEGER, has_no_foaf INTEGER DEFAULT 0 ) `); readCSV("subscribers.csv").then((subscribers) => { for (const subscriber of subscribers) { const createdAt = convertToUnixTimestamp(subscriber["updated_at"]); db.query("INSERT OR IGNORE INTO subscribers (pubkey, balance, created_at) VALUES (?, ?, ?)", [subscriber["pubkey"], subscriber["balance"], createdAt]); } db.close(); });