Scraping upcoming Vixen scenes. Fetching release media groups sequentially to prevent collisions.

This commit is contained in:
2020-02-22 04:37:48 +01:00
parent 3c92e828f6
commit e5c6ccd252
5 changed files with 87 additions and 40 deletions

View File

@@ -343,32 +343,30 @@ async function storeReleaseAssets(releases) {
[release.id]: pluckItems(release.photos),
}), {});
const [posters, covers] = await Promise.all([
argv.posters && storeMedia(Object.values(releasePostersById).flat(), 'release', 'poster'),
argv.covers && storeMedia(Object.values(releaseCoversById).flat(), 'release', 'cover'),
]);
if (argv.posters) {
const posters = await storeMedia(Object.values(releasePostersById).flat(), 'release', 'poster');
if (posters) await associateMedia(releasePostersById, posters, 'release', 'poster');
}
// ensure posters are available before fetching supplementary media
await Promise.all([
posters && associateMedia(releasePostersById, posters, 'release', 'poster'),
covers && associateMedia(releaseCoversById, covers, 'release', 'cover'),
]);
if (argv.covers) {
const covers = await storeMedia(Object.values(releaseCoversById).flat(), 'release', 'cover');
if (covers) await associateMedia(releaseCoversById, covers, 'release', 'cover');
}
if (argv.photos) {
const photos = await storeMedia(Object.values(releasePhotosById).flat(), 'release', 'photo');
if (photos) await associateMedia(releasePhotosById, photos, 'release', 'photo');
}
// videos take a long time, fetch last
const [trailers, teasers] = await Promise.all([
argv.trailers && storeMedia(Object.values(releaseTrailersById).flat(), 'release', 'trailer'),
argv.teasers && storeMedia(Object.values(releaseTeasersById).flat(), 'release', 'teaser'),
]);
if (argv.trailers) {
const trailers = await storeMedia(Object.values(releaseTrailersById).flat(), 'release', 'trailer');
if (trailers) await associateMedia(releaseTrailersById, trailers, 'release', 'trailer');
}
await Promise.all([
trailers && associateMedia(releaseTrailersById, trailers, 'release', 'trailer'),
teasers && associateMedia(releaseTeasersById, teasers, 'release', 'teaser'),
]);
if (argv.teasers) {
const teasers = await storeMedia(Object.values(releaseTeasersById).flat(), 'release', 'teaser');
if (teasers) await associateMedia(releaseTeasersById, teasers, 'release', 'teaser');
}
}
async function storeRelease(release) {