From 245616acd445f8cceb9c4980210c4f826c3b8a86 Mon Sep 17 00:00:00 2001 From: ntr Date: Mon, 25 Jul 2022 01:38:49 +1000 Subject: [PATCH] we function --- index.ts | 31 +++++++++++++------------------ package-lock.json | 11 +++++++++++ package.json | 1 + src/discogs.ts | 2 +- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/index.ts b/index.ts index ba974c3..8032bb6 100644 --- a/index.ts +++ b/index.ts @@ -1,5 +1,6 @@ import fs from 'fs/promises'; import _ from 'lodash'; +import Promise from 'bluebird'; import discogsService from './src/discogs'; @@ -8,25 +9,19 @@ async function start() { const wants = JSON.parse(await fs.readFile('./data/margh.wantlist.json', { encoding: 'utf8' })) console.log('wants', wants.length); - - const listings = await Promise.all(wants.map(async w => { - try { - const l = await discogs.listings(w.id) - return l; - } catch (e) { - // console.error(e); - return null; - } - })); - - - // once we have all the listings - // group by seller - - return _ + return Promise.map(wants, async w => { + try { + const l = await discogs.listings(w.id) + return l; + } catch (e) { + // console.error(e); + return null; + } + }) + .then(listings => _ .chain(listings) .filter(l => l) - .reduce((acc, g) => acc.concat(g), []) + .flatten() .map(l => ({ id: l.id, description: l.release.description, @@ -37,7 +32,7 @@ async function start() { .sortBy(s => s.length) .reverse() .head() - .value(); + .value()); } start() diff --git a/package-lock.json b/package-lock.json index 49e2bd4..0d37157 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "axios": "^0.27.2", + "bluebird": "^3.7.2", "bunyan": "^1.8.15", "express": "^4.18.1", "knex": "^2.2.0", @@ -188,6 +189,11 @@ "node": ">=8" } }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, "node_modules/body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", @@ -2041,6 +2047,11 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, "body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", diff --git a/package.json b/package.json index 2661a40..bac0a1a 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ }, "dependencies": { "axios": "^0.27.2", + "bluebird": "^3.7.2", "bunyan": "^1.8.15", "express": "^4.18.1", "knex": "^2.2.0", diff --git a/src/discogs.ts b/src/discogs.ts index d2bdcae..d0af348 100644 --- a/src/discogs.ts +++ b/src/discogs.ts @@ -53,7 +53,7 @@ export default function discogs() { // console.log('cached', id); return JSON.parse(await fs.readFile(path, { encoding: 'utf8' })); } - // console.log('fetching', id); + console.log('fetching', id); const res = await api.get(`${apiBase}/marketplace/listings/${id}`); await fs.writeFile(path, JSON.stringify(res.data, null, 4)); return res.data;