jmou/yakatak
git clone https://github.com/jmou/yakatak.git
git clone git@github.com:jmou/yakatak.git
Loading…
(top)/db/src/add-urls.ts
language: TypeScript
845 Bytes / 32 lines / 25 loc
History
View raw
import { YakatakDb } from "./db.ts";

const chunks: Buffer[] = [];
for await (const chunk of process.stdin) {
  chunks.push(chunk as Buffer);
}
const stdin = Buffer.concat(chunks).toString("utf-8");

async function main() {
  const [, scriptPath, dbPath, ...extraArgs] = process.argv;
  if (!dbPath || extraArgs.length > 0) {
    console.error(`usage: node ${scriptPath} <db-path> < <urls>`);
    process.exit(1);
  }

  const db = new YakatakDb(dbPath);
  await db.init();

  const cardIds: number[] = [];
  for (const url of stdin.split("\n").filter(Boolean)) {
    const cardId = await db.enqueueCard(url);
    cardIds.push(cardId);
  }

  const deck = await db.createDeck();
  const revision = await db.createRevision(deck.id, cardIds);
  console.log(`Created deck ${deck.id} revision ${revision.id}`);

  await db.close();
}

await main();