gatsby-source-pixiv
Version:
Gatsby source plugin for fetching pixiv data
57 lines (48 loc) • 1.49 kB
JavaScript
;
exports.__esModule = true;
exports.getUserDetail = getUserDetail;
exports.getUserIllusts = getUserIllusts;
exports.getUserBookmarksIllust = getUserBookmarksIllust;
const pixivAppApi = require("pixiv-api-client");
async function getUserDetail({
refreshToken,
user_id
}) {
const pixiv = new pixivAppApi();
await pixiv.refreshAccessToken(refreshToken);
return pixiv.userDetail(user_id);
}
async function getUserIllusts({
refreshToken,
user_id,
maxArtworks
}) {
const pixiv = new pixivAppApi();
await pixiv.refreshAccessToken(refreshToken);
let json = await pixiv.userIllusts(user_id);
let hasNext = !!json.next_url;
let illusts = json.illusts;
while (hasNext && maxArtworks && illusts.length >= maxArtworks) {
json = await pixiv.requestUrl(json.next_url);
hasNext = !!json.next_url;
illusts = illusts.concat(json.illusts);
}
return illusts.splice(0, maxArtworks || illusts.length);
}
async function getUserBookmarksIllust({
refreshToken,
user_id,
maxArtworks
}) {
const pixiv = new pixivAppApi();
await pixiv.refreshAccessToken(refreshToken);
let json = await pixiv.userBookmarksIllust(user_id);
let hasNext = !!json.next_url;
let illusts = json.illusts;
while (hasNext && maxArtworks && illusts.length >= maxArtworks) {
json = await pixiv.requestUrl(json.next_url);
hasNext = !!json.next_url;
illusts = illusts.concat(json.illusts);
}
return illusts.splice(0, maxArtworks || illusts.length);
}