From fee0e1b872a0a5fbb5b97c11286a7289535154a0 Mon Sep 17 00:00:00 2001 From: Nulo Date: Tue, 26 Dec 2023 15:22:27 -0300 Subject: [PATCH] mejorar contenedor de scraper poder importar warcs especificos --- bun.lockb | Bin 441552 -> 396136 bytes db-datos/migrate.ts | 3 +- scraper/Containerfile | 11 +- scraper/auto.ts | 398 +++++++++++++++++++++++------------------- scraper/cli.ts | 19 ++ scraper/scrap.ts | 6 - 6 files changed, 242 insertions(+), 195 deletions(-) diff --git a/bun.lockb b/bun.lockb index 8dcbab0dd66d88c4edecf767ced6eb1d42136eab..55f034f7e22fe60e1a4e8549f9b1d6176bb403ba 100755 GIT binary patch delta 80218 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

9_-dbKR!NHKVB( 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 /etc/periodic/daily/scraper \ +RUN printf "#!/bin/sh\nexec bun /bin/scraper auto" > /etc/periodic/daily/scraper \ && chmod +x /etc/periodic/daily/scraper -COPY --from=builder /tmp/auto.build.js /app/built.js -COPY --from=builder /usr/src/app/db-datos/drizzle /app/drizzle +COPY --from=builder /tmp/cli.build.js /bin/scraper +COPY --from=builder /usr/src/app/db-datos/drizzle /bin/drizzle COPY --from=builder /usr/src/app/data /listas WORKDIR /app VOLUME /db +ENV NODE_ENV=production ENV DB_PATH=/db/db.db ENV LISTS_DIR=/listas/ CMD ["tini", "/usr/sbin/crond", "-n"] -# CMD ["bun", "/app/built.js"] \ No newline at end of file +# CMD ["bun", "/bin/scraper"] \ No newline at end of file diff --git a/scraper/auto.ts b/scraper/auto.ts index c7359e2..ee97627 100644 --- a/scraper/auto.ts +++ b/scraper/auto.ts @@ -10,28 +10,6 @@ import { S3Client } from "@aws-sdk/client-s3"; import { Upload } from "@aws-sdk/lib-storage"; import { BunFile } from "bun"; -if ( - !process.env.S3_ACCESS_KEY_ID || - !process.env.S3_SECRET_ACCESS_KEY || - !process.env.S3_BUCKET_NAME -) - throw new Error("missing s3 creds"); -if (!process.env.TELEGRAM_BOT_TOKEN) - console.warn("no hay TELEGRAM_BOT_TOKEN, no voy a loggear por allá"); -if (!process.env.TELEGRAM_BOT_CHAT_ID) - console.warn("no hay TELEGRAM_BOT_CHAT_ID, no voy a loggear por allá"); -const { S3_BUCKET_NAME, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY } = process.env; - -// https://www.backblaze.com/docs/cloud-storage-use-the-aws-sdk-for-javascript-v3-with-backblaze-b2 -const s3 = new S3Client({ - endpoint: "https://s3.us-west-004.backblazeb2.com", - region: "us-west-004", - credentials: { - accessKeyId: S3_ACCESS_KEY_ID, - secretAccessKey: S3_SECRET_ACCESS_KEY, - }, -}); - const supermercados: Supermercado[] = [ Supermercado.Carrefour, Supermercado.Coto, @@ -44,162 +22,227 @@ const compressionQueue = new PQueue({ concurrency: 1 }); // hacemos una cola para el scrapeo para no tener varios writers a la BD y no sobrecargar la CPU const scrapQueue = new PQueue({ concurrency: 1 }); -supermercados.forEach(downloadList); -// await recompress("sqlite.db.gz", "sqlite.db.zst"); - -async function downloadList(supermercado: Supermercado) { - const listPath = resolve( - join(process.env.LISTS_DIR ?? "../data", `${supermercado}.txt`) - ); - const date = new Date(); - const ctxPath = await mkdtemp(join(tmpdir(), "preciazo-scraper-wget-")); - const zstdWarcName = `${supermercado}-${format( - date, - "yyyy-MM-dd-HH:mm" - )}.warc.zst`; - const zstdWarcPath = join(ctxPath, zstdWarcName); - const subproc = Bun.spawn({ - cmd: [ - "wget", - "--no-verbose", - "--tries=3", - "--delete-after", - "--input-file", - listPath, - `--warc-file=temp`, - ], - stderr: "ignore", - stdout: "ignore", - cwd: ctxPath, - }); - const t0 = performance.now(); - await subproc.exited; - inform(`wget para ${zstdWarcName} tardó ${formatMs(performance.now() - t0)}`); - - const gzippedWarcPath = join(ctxPath, "temp.warc.gz"); - if (!(await fileExists(gzippedWarcPath))) { - const err = report(`no encontré el ${gzippedWarcPath}`); - throw err; - } - - await compressionQueue.add(() => recompress(gzippedWarcPath, zstdWarcPath)); - if (!(await fileExists(zstdWarcPath))) { - const err = report(`no encontré el ${zstdWarcPath}`); - throw err; - } - - scrapAndInform({ zstdWarcPath, zstdWarcName }); - - try { - await uploadToBucket({ - fileName: zstdWarcName, - file: Bun.file(zstdWarcPath), - }); - } catch (error) { - inform(`Falló subir ${zstdWarcName} a S3; ${error}`); - console.error(error); - } - - // TODO: borrar archivos temporales +export async function auto() { + const a = new Auto(); + await Promise.all(supermercados.map((supr) => a.downloadList(supr))); } -async function scrapAndInform({ - zstdWarcPath, - zstdWarcName, -}: { - zstdWarcPath: string; - zstdWarcName: string; -}) { - const res = await scrapQueue.add(async () => { +class Auto { + s3Config?: { s3: S3Client; bucketName: string }; + telegramConfig?: { token: string; chatId: string }; + + constructor() { + if ( + !process.env.S3_ACCESS_KEY_ID || + !process.env.S3_SECRET_ACCESS_KEY || + !process.env.S3_BUCKET_NAME + ) { + if (process.env.NODE_ENV === "development") { + console.warn("faltan creds de s3, no voy a subir a s3"); + } else { + throw new Error("faltan creds de s3"); + } + } else { + this.s3Config = { + // https://www.backblaze.com/docs/cloud-storage-use-the-aws-sdk-for-javascript-v3-with-backblaze-b2 + s3: new S3Client({ + endpoint: "https://s3.us-west-004.backblazeb2.com", + region: "us-west-004", + credentials: { + accessKeyId: process.env.S3_ACCESS_KEY_ID, + secretAccessKey: process.env.S3_SECRET_ACCESS_KEY, + }, + }), + bucketName: process.env.S3_BUCKET_NAME, + }; + } + + if (!process.env.TELEGRAM_BOT_TOKEN) + console.warn("no hay TELEGRAM_BOT_TOKEN, no voy a loggear por allá"); + else if (!process.env.TELEGRAM_BOT_CHAT_ID) + console.warn("no hay TELEGRAM_BOT_CHAT_ID, no voy a loggear por allá"); + else + this.telegramConfig = { + token: process.env.TELEGRAM_BOT_TOKEN, + chatId: process.env.TELEGRAM_BOT_CHAT_ID, + }; + } + + async downloadList(supermercado: Supermercado) { + const listPath = resolve( + join(process.env.LISTS_DIR ?? "../data", `${supermercado}.txt`) + ); + const date = new Date(); + const ctxPath = await mkdtemp(join(tmpdir(), "preciazo-scraper-wget-")); + const zstdWarcName = `${supermercado}-${format( + date, + "yyyy-MM-dd-HH:mm" + )}.warc.zst`; + const zstdWarcPath = join(ctxPath, zstdWarcName); + const subproc = Bun.spawn({ + cmd: [ + "wget", + "--no-verbose", + "--tries=3", + "--delete-after", + "--input-file", + listPath, + `--warc-file=temp`, + ], + stderr: "ignore", + stdout: "ignore", + cwd: ctxPath, + }); const t0 = performance.now(); - const progress = await parseWarc(zstdWarcPath); - return { took: performance.now() - t0, progress }; - }); - - if (res) { - const { took, progress } = res; - inform( - `Procesado ${zstdWarcName} (${progress.done} ok, ${ - progress.errors.length - } errores) (tardó ${formatMs(took)})` + await subproc.exited; + this.inform( + `wget para ${zstdWarcName} tardó ${formatMs(performance.now() - t0)}` ); - } else { - inform(`Algo falló en ${zstdWarcName}`); + + const gzippedWarcPath = join(ctxPath, "temp.warc.gz"); + if (!(await fileExists(gzippedWarcPath))) { + const err = this.report(`no encontré el ${gzippedWarcPath}`); + throw err; + } + + await compressionQueue.add(() => + this.recompress(gzippedWarcPath, zstdWarcPath) + ); + if (!(await fileExists(zstdWarcPath))) { + const err = this.report(`no encontré el ${zstdWarcPath}`); + throw err; + } + + this.scrapAndInform({ zstdWarcPath, zstdWarcName }); + + try { + await this.uploadToBucket({ + fileName: zstdWarcName, + file: Bun.file(zstdWarcPath), + }); + } catch (error) { + this.inform(`Falló subir ${zstdWarcName} a S3; ${error}`); + console.error(error); + } + + // TODO: borrar archivos temporales + } + + async scrapAndInform({ + zstdWarcPath, + zstdWarcName, + }: { + zstdWarcPath: string; + zstdWarcName: string; + }) { + const res = await scrapQueue.add(async () => { + const t0 = performance.now(); + const progress = await parseWarc(zstdWarcPath); + return { took: performance.now() - t0, progress }; + }); + + if (res) { + const { took, progress } = res; + this.inform( + `Procesado ${zstdWarcName} (${progress.done} ok, ${ + progress.errors.length + } errores) (tardó ${formatMs(took)})` + ); + } else { + this.inform(`Algo falló en ${zstdWarcName}`); + } + } + + /** + * toma un archivo gzippeado y lo recomprime con zstd. + * borra el archivo original. + */ + recompress(inputPath: string, outputPath: string) { + // XXX: por alguna razón no funciona en Bun 1.0.20 + // const decompressor = Bun.spawn({ + // cmd: ["gzip", "-dc", inputPath], + // stderr: "inherit", + // }); + // const compressor = Bun.spawn({ + // cmd: ["zstd", "-T0", "-15", "--long", "-o", outputPath], + // stdin: decompressor.stdout, + // // stderr: "inherit", + // }); + // const errorCode = await compressor.exited; + // if (errorCode !== 0) { + // const err = report(`zstd threw error code ${errorCode}`); + // throw err; + // } + + return new Promise((resolve, reject) => { + const decompressor = spawn("gzip", ["-dc", inputPath], { + stdio: [null, "pipe", null], + }); + const compressor = spawn( + "zstd", + ["-T0", "-15", "--long", "-o", outputPath], + { + stdio: ["pipe", null, null], + } + ); + // @ts-expect-error a los types de bun no le gusta???? + decompressor.stdout.pipe(compressor.stdin); + compressor.on("close", (code) => { + if (code !== 0) { + const err = this.report(`zstd threw error code ${code}`); + reject(err); + } + resolve(void 0); + }); + }); + } + + async uploadToBucket({ + fileName, + file, + }: { + fileName: string; + file: BunFile; + }) { + if (!this.s3Config) { + this.inform( + `[s3] Se intentó subir ${fileName} pero no tenemos creds de S3` + ); + return; + } + const parallelUploads3 = new Upload({ + client: this.s3Config.s3, + params: { + Bucket: this.s3Config.bucketName, + Key: fileName, + Body: file, + }, + }); + await parallelUploads3.done(); + } + + inform(msg: string) { + this.sendTelegramMsg(msg); + console.info(msg); + } + report(msg: string) { + this.inform(msg); + const error = new Error(msg); + + return error; + } + + async sendTelegramMsg(text: string) { + if (!this.telegramConfig) return; + const url = new URL( + `https://api.telegram.org/bot${this.telegramConfig.token}/sendMessage` + ); + url.searchParams.set("chat_id", this.telegramConfig.chatId); + url.searchParams.set("text", text); + await fetch(url); } } - -/** - * toma un archivo gzippeado y lo recomprime con zstd. - * borra el archivo original. - */ -function recompress(inputPath: string, outputPath: string) { - // XXX: por alguna razón no funciona en Bun 1.0.20 - // const decompressor = Bun.spawn({ - // cmd: ["gzip", "-dc", inputPath], - // stderr: "inherit", - // }); - // const compressor = Bun.spawn({ - // cmd: ["zstd", "-T0", "-15", "--long", "-o", outputPath], - // stdin: decompressor.stdout, - // // stderr: "inherit", - // }); - // const errorCode = await compressor.exited; - // if (errorCode !== 0) { - // const err = report(`zstd threw error code ${errorCode}`); - // throw err; - // } - - return new Promise((resolve, reject) => { - const decompressor = spawn("gzip", ["-dc", inputPath], { - stdio: [null, "pipe", null], - }); - const compressor = spawn( - "zstd", - ["-T0", "-15", "--long", "-o", outputPath], - { - stdio: ["pipe", null, null], - } - ); - // @ts-expect-error a los types de bun no le gusta???? - decompressor.stdout.pipe(compressor.stdin); - compressor.on("close", (code) => { - if (code !== 0) { - const err = report(`zstd threw error code ${code}`); - reject(err); - } - resolve(void 0); - }); - }); -} - -async function uploadToBucket({ - fileName, - file, -}: { - fileName: string; - file: BunFile; -}) { - const parallelUploads3 = new Upload({ - client: s3, - params: { - Bucket: S3_BUCKET_NAME, - Key: fileName, - Body: file, - }, - }); - await parallelUploads3.done(); -} - -function inform(msg: string) { - sendTelegramMsg(msg); - console.info(msg); -} -function report(msg: string) { - inform(msg); - const error = new Error(msg); - - return error; -} +// await recompress("sqlite.db.gz", "sqlite.db.zst"); // no se llama exists porque bun tiene un bug en el que usa fs.exists por mas que exista una funcion llamada exists async function fileExists(path: string) { @@ -211,17 +254,6 @@ async function fileExists(path: string) { } } -async function sendTelegramMsg(text: string) { - if (!process.env.TELEGRAM_BOT_TOKEN || !process.env.TELEGRAM_BOT_CHAT_ID) - return; - const url = new URL( - `https://api.telegram.org/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMessage` - ); - url.searchParams.set("chat_id", process.env.TELEGRAM_BOT_CHAT_ID); - url.searchParams.set("text", text); - await fetch(url); -} - function formatMs(ms: number) { return formatDuration(intervalToDuration({ start: 0, end: Math.round(ms) })); } diff --git a/scraper/cli.ts b/scraper/cli.ts index e69de29..3f3fb39 100644 --- a/scraper/cli.ts +++ b/scraper/cli.ts @@ -0,0 +1,19 @@ +import { auto } from "./auto.js"; +import { parseWarc } from "./scrap.js"; + +if (process.argv[2] === "auto") { + await auto(); +} else if (process.argv[2] === "scrap") { + const warcPaths = process.argv.slice(3); + if (warcPaths.length > 0) { + for (const path of warcPaths) { + await parseWarc(path); + } + } else { + console.error("Especificá WARCs para scrapear."); + process.exit(1); + } +} else { + console.error("Especificá una acción (tipo `auto` o `scrap`) para hacer."); + process.exit(1); +} diff --git a/scraper/scrap.ts b/scraper/scrap.ts index 83b418a..bcf5aa9 100644 --- a/scraper/scrap.ts +++ b/scraper/scrap.ts @@ -32,12 +32,6 @@ const getPrevPrecio = db .limit(1) .prepare(); -if (process.argv[1].endsWith("/scrap.ts")) { - for (const path of process.argv.slice(2)) { - await parseWarc(path); - } -} - export type Precio = typeof schema.precios.$inferInsert; export type Precioish = Omit< Precio,