From d5cff0e7889f84c555fe8d139e095c7190ae73fb Mon Sep 17 00:00:00 2001 From: Anatoly Date: Sun, 23 Jan 2022 03:22:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D0=BB=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=81=D1=82=D0=BE=D0=B2=20=D0=B2=20?= =?UTF-8?q?getPosts.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- getImages.js | 36 +------------ getPosts.js | 36 ++++++++++++- package-lock.json | 129 +++++++++++++++++++++++++++++++++++++--------- 3 files changed, 140 insertions(+), 61 deletions(-) diff --git a/getImages.js b/getImages.js index a4b8e5e..4d3cef3 100644 --- a/getImages.js +++ b/getImages.js @@ -1,4 +1,3 @@ -import ProgressBar from 'progress'; import getPosts from './getPosts.js'; import post2Svg from './post2Svg.js'; @@ -16,41 +15,8 @@ function filterPosts(posts) { }) } -async function getAllPosts(owner_id) { - let finished = false; - let offset = 0; - let posts = []; - let bar; - - while (!finished) { - const response = await getPosts(owner_id, offset); - const total = response.count; - - if (!bar) { - bar = new ProgressBar( - 'Getting posts [:bar] :current/:total :percent', - { - total, - width: 30, - } - ); - } - bar.tick(response.items.length); - - posts = posts.concat(response.items); - if (posts.length === total) { - finished = true; - } else { - offset += response.items.length; - await new Promise(r => setTimeout(r, 5000)); - } - } - - return posts; -} - export default async function(owner_id) { - let posts = await getAllPosts(owner_id); + let posts = await getPosts(owner_id); posts = filterPosts(posts); let images = []; diff --git a/getPosts.js b/getPosts.js index 7e1909d..04f2e1a 100644 --- a/getPosts.js +++ b/getPosts.js @@ -1,6 +1,7 @@ import axios from 'axios'; +import ProgressBar from 'progress'; -export default async function(owner_id, offset) { + async function getPosts(owner_id, offset) { const res = await axios.get('https://api.vk.com/method/wall.get', { params: { access_token: process.env.SERVICE_KEY, @@ -13,4 +14,37 @@ export default async function(owner_id, offset) { }); return res.data.response; +} + +export default async function getAllPosts(owner_id) { + let finished = false; + let offset = 0; + let posts = []; + let bar; + + while (!finished) { + const response = await getPosts(owner_id, offset); + const total = response.count; + + if (!bar) { + bar = new ProgressBar( + 'Getting posts [:bar] :current/:total :percent', + { + total, + width: 30, + } + ); + } + bar.tick(response.items.length); + + posts = posts.concat(response.items); + if (posts.length === total) { + finished = true; + } else { + offset += response.items.length; + await new Promise(r => setTimeout(r, 5000)); + } + } + + return posts; } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2259b4d..e02414f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,8 +5,9 @@ "requires": true, "packages": { "": { + "name": "vk-wall-nft-collection", "version": "1.0.0", - "license": "ISC", + "license": "GPL-3.0", "dependencies": { "@svgdotjs/svg.js": "^3.1.1", "axios": "^0.25.0", @@ -446,21 +447,6 @@ "node": ">=4" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -1447,6 +1433,21 @@ "node": ">=8.0.0" } }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -1643,6 +1644,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -1913,6 +1929,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -2092,6 +2123,21 @@ "uuid": "^8.3.2" } }, + "node_modules/rareterm.node/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/rareterm.node/node_modules/mushie": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/mushie/-/mushie-0.0.4.tgz", @@ -3231,15 +3277,6 @@ "quick-lru": "^1.0.0" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -4056,6 +4093,17 @@ "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "is-arguments": { @@ -4195,6 +4243,17 @@ "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "loud-rejection": { @@ -4400,6 +4459,17 @@ "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "os-tmpdir": { @@ -4542,6 +4612,15 @@ "uuid": "^8.3.2" }, "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "mushie": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/mushie/-/mushie-0.0.4.tgz",