mirror of
https://github.com/anatolykopyl/vk-nft-feed.git
synced 2026-03-26 04:44:34 +00:00
Переместил получение постов в getPosts.js
This commit is contained in:
36
getPosts.js
36
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;
|
||||
}
|
||||
Reference in New Issue
Block a user