Переместил получение постов в 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,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;
}