'use strict'; const util = require('util'); const argv = require('./argv'); const initServer = require('./web/server'); const knex = require('./knex'); const fetchUpdates = require('./updates'); const { fetchScenes, fetchMovies } = require('./deep'); const { storeReleases, updateReleasesSearch } = require('./store-releases'); const { scrapeActors } = require('./actors'); async function init() { if (argv.server) { await initServer(); return; } if (argv.updateSearch) { await updateReleasesSearch(); } const actors = argv.actors && await scrapeActors(argv.actors); const actorBaseScenes = argv.actors && argv.actorScenes && actors.map(actor => actor.releases).flat().filter(Boolean); const updateBaseScenes = (argv.scrape || argv.sites || argv.networks) && await fetchUpdates(); const deepScenes = argv.deep ? await fetchScenes([...(argv.scenes || []), ...(updateBaseScenes || []), ...(actorBaseScenes || [])]) : updateBaseScenes; const sceneMovies = deepScenes && argv.sceneMovies && deepScenes.map(scene => scene.movie).filter(Boolean); const deepMovies = await fetchMovies([...(argv.movies || []), ...(sceneMovies || [])]); if (argv.inspect) { console.log(util.inspect(deepScenes)); console.log(util.inspect(deepMovies)); } if (argv.save) { await storeReleases([ ...(deepScenes || []), ...(deepMovies || []), ]); } knex.destroy(); } module.exports = init;