'use strict'; const argv = require('./argv'); const knex = require('./knex'); const initServer = require('./web/server'); const scrapeSites = require('./scrape-sites'); const { scrapeReleases, deepFetchReleases } = require('./scrape-releases'); const { storeReleases } = require('./releases'); const { scrapeActors, scrapeBasicActors } = require('./actors'); if (process.env.NODE_ENV === 'development') { require('longjohn'); // eslint-disable-line global-require } async function init() { if (argv.scene) { await scrapeReleases(argv.scene, null, 'scene'); } if (argv.movie) { await scrapeReleases(argv.movie, null, 'movie'); } if (argv.scrape || argv.networks || argv.sites) { await scrapeSites(); } if (argv.actors && argv.actors.length > 0) { const actors = await scrapeActors(); if (argv.withReleases) { const baseReleases = actors.map(actor => actor?.releases || []).flat(); const releases = await deepFetchReleases(baseReleases, null, 'scene'); await storeReleases(releases); } } if (argv.actors && argv.actors.length === 0) { await scrapeBasicActors(); } if (argv.server) { await initServer(); return; } knex.destroy(); } module.exports = init;