Переместил получение постов в getPosts.js

This commit is contained in:
2022-01-23 03:22:56 +03:00
parent 55905704a6
commit d5cff0e788
3 changed files with 140 additions and 61 deletions

View File

@@ -1,4 +1,3 @@
import ProgressBar from 'progress';
import getPosts from './getPosts.js'; import getPosts from './getPosts.js';
import post2Svg from './post2Svg.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) { export default async function(owner_id) {
let posts = await getAllPosts(owner_id); let posts = await getPosts(owner_id);
posts = filterPosts(posts); posts = filterPosts(posts);
let images = []; let images = [];

View File

@@ -1,6 +1,7 @@
import axios from 'axios'; 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', { const res = await axios.get('https://api.vk.com/method/wall.get', {
params: { params: {
access_token: process.env.SERVICE_KEY, access_token: process.env.SERVICE_KEY,
@@ -14,3 +15,36 @@ export default async function(owner_id, offset) {
return res.data.response; 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;
}

129
package-lock.json generated
View File

@@ -5,8 +5,9 @@
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "vk-wall-nft-collection",
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "GPL-3.0",
"dependencies": { "dependencies": {
"@svgdotjs/svg.js": "^3.1.1", "@svgdotjs/svg.js": "^3.1.1",
"axios": "^0.25.0", "axios": "^0.25.0",
@@ -446,21 +447,6 @@
"node": ">=4" "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": { "node_modules/chardet": {
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
@@ -1447,6 +1433,21 @@
"node": ">=8.0.0" "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": { "node_modules/is-arguments": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -1643,6 +1644,21 @@
"url": "https://github.com/sponsors/sindresorhus" "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": { "node_modules/loud-rejection": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
@@ -1913,6 +1929,21 @@
"url": "https://github.com/sponsors/sindresorhus" "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": { "node_modules/os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -2092,6 +2123,21 @@
"uuid": "^8.3.2" "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": { "node_modules/rareterm.node/node_modules/mushie": {
"version": "0.0.4", "version": "0.0.4",
"resolved": "https://registry.npmjs.org/mushie/-/mushie-0.0.4.tgz", "resolved": "https://registry.npmjs.org/mushie/-/mushie-0.0.4.tgz",
@@ -3231,15 +3277,6 @@
"quick-lru": "^1.0.0" "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": { "chardet": {
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
@@ -4056,6 +4093,17 @@
"string-width": "^4.1.0", "string-width": "^4.1.0",
"strip-ansi": "^6.0.0", "strip-ansi": "^6.0.0",
"through": "^2.3.6" "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": { "is-arguments": {
@@ -4195,6 +4243,17 @@
"requires": { "requires": {
"chalk": "^4.1.0", "chalk": "^4.1.0",
"is-unicode-supported": "^0.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": { "loud-rejection": {
@@ -4400,6 +4459,17 @@
"log-symbols": "^4.1.0", "log-symbols": "^4.1.0",
"strip-ansi": "^6.0.0", "strip-ansi": "^6.0.0",
"wcwidth": "^1.0.1" "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": { "os-tmpdir": {
@@ -4542,6 +4612,15 @@
"uuid": "^8.3.2" "uuid": "^8.3.2"
}, },
"dependencies": { "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": { "mushie": {
"version": "0.0.4", "version": "0.0.4",
"resolved": "https://registry.npmjs.org/mushie/-/mushie-0.0.4.tgz", "resolved": "https://registry.npmjs.org/mushie/-/mushie-0.0.4.tgz",