UNPKG

@gameroom/cli

Version:

A command line tool for Gameroom

405 lines (400 loc) 14.8 kB
const cosmetic = require('cosmetic'), { dollarString, getAll, grGreen, nearestDime, percentageDifference, timeout, writeCSVFile } = require('../helpers'), { Price_Charting } = require('../models'), { models: { Price, Product } } = require('@gameroom/kit'), { spinner } = require('../refs') module.exports = async (options) => { const all = !options.ps5 && !options['xbox-series-x'] && !options.ps4 && !options['xbox-one'] && !options.switch && !options['wii-u'] && !options.ps3 && !options['xbox-360'] && !options.wii && !options.ps2 && !options.xbox && !options.gamecube && !options.ps1 && !options.dreamcast && !options['sega-cd'] && !options.saturn && !options['3ds'] && !options.ds && !options.gba && !options.gbc && !options.gb && !options['cd-i'] && !options['3do'] && !options.nes && !options.snes && !options.n64 && !options.genesis && !options['32x'] && !options['master-system'] && !options.atari && !options.intellivision && !options.colecovision && !options.psp && !options.vita && !options['game-gear'] && !options.none spinner.info(`getting ${all ? 'all ' : ''}console ${grGreen('products')}`) const sort = [{ name: 1 }], total = [], video_game = { key: 'tags', comparison: 'contains', value: 'Video Games' } if (all || options.ps5) { // ps5 spinner.text = `getting ps5 ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'PS5' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} ps5 ${grGreen('products')}`) } if (all || options['xbox-series-x']) { // xbox series x spinner.text = `getting xbox series x ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Xbox Series X' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} xbox series x ${grGreen('products')}`) } if (all || options.ps4) { // ps4 spinner.text = `getting ps4 ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'PS4' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} ps4 ${grGreen('products')}`) } if (all || options['xbox-one']) { // xbox one spinner.text = `getting xbox one ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Xbox One' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} xbox one ${grGreen('products')}`) } // switch if (all || options.switch) { spinner.text = `getting switch ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Switch' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} switch ${grGreen('products')}`) } // wii u if (all || options['wii-u']) { spinner.text = `getting wii u ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Wii U' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} wii u ${grGreen('products')}`) } // ps3 if (all || options.ps3) { spinner.text = `getting ps3 ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'PS3' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} ps3 ${grGreen('products')}`) } // xbox 360 if (all || options['xbox-360']) { spinner.text = `getting xbox 360 ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Xbox 360' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} xbox 360 ${grGreen('products')}`) } // wii if (all || options.wii) { spinner.text = `getting wii ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Wii' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} wii ${grGreen('products')}`) } // ps2 if (all || options.ps2) { spinner.text = `getting ps2 ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'PS2' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} ps2 ${grGreen('products')}`) } // xbox if (all || options.xbox) { spinner.text = `getting xbox ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Xbox' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} xbox ${grGreen('products')}`) } // gamecube if (all || options.gamecube) { spinner.text = `getting gamecube ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Gamecube' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} gamecube ${grGreen('products')}`) } // ps1 if (all || options.ps1) { spinner.text = `getting ps1 ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'PS1' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} ps1 ${grGreen('products')}`) } // dreamcast if (all || options.dreamcast) { spinner.text = `getting dreamcast ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Dreamcast' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} dreamcast ${grGreen('products')}`) } // sega_cd if (all || options['sega-cd']) { spinner.text = `getting sega cd ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Sega CD' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} sega cd ${grGreen('products')}`) } // saturn if (all || options.saturn) { spinner.text = `getting saturn ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Saturn' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} saturn ${grGreen('products')}`) } // 3DS if (all || options['3ds']) { spinner.text = `getting 3ds ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: '3DS' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} 3ds ${grGreen('products')}`) } // DS if (all || options.ds) { spinner.text = `getting ds ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'DS' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} ds ${grGreen('products')}`) } // Gameboy Advance if (all || options.gba) { spinner.text = `getting gameboy advance ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Gameboy Advance' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} gameboy advance ${grGreen('products')}`) } // Gameboy Color if (all || options.gbc) { spinner.text = `getting gameboy color ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Gameboy Color' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} gameboy color ${grGreen('products')}`) } // Gameboy if (all || options.gb) { spinner.text = `getting gameboy ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Gameboy' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} gameboy ${grGreen('products')}`) } // CD-i if (all || options['cd-i']) { spinner.text = `getting cd-i ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'CD-i' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} cd-i ${grGreen('products')}`) } // 3DO if (all || options['3do']) { spinner.text = `getting 3do ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: '3DO' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} 3do ${grGreen('products')}`) } // NES if (all || options.nes) { spinner.text = `getting nes ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'NES' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} nes ${grGreen('products')}`) } // SNES if (all || options.snes) { spinner.text = `getting snes ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'SNES' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} snes ${grGreen('products')}`) } // N64 if (all || options.n64) { spinner.text = `getting n64 ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'N64' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} n64 ${grGreen('products')}`) } // Genesis if (all || options.genesis) { spinner.text = `getting genesis ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Genesis' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} genesis ${grGreen('products')}`) } // 32X if (all || options['32x']) { spinner.text = `getting 32x ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: '32X' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} 32x ${grGreen('products')}`) } // Master System if (all || options['master-system']) { spinner.text = `getting master system ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Master System' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} master system ${grGreen('products')}`) } // Atari if (all || options.atari) { spinner.text = `getting atari ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Atari' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} atari ${grGreen('products')}`) } // Intellivision if (all || options.intellivision) { spinner.text = `getting intellivision ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Intellivision' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} intellivision ${grGreen('products')}`) } // Colecovision if (all || options.colecovision) { spinner.text = `getting colecovision ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Colecovision' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} colecovision ${grGreen('products')}`) } // PSP if (all || options.psp) { spinner.text = `getting psp ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'PSP' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} psp ${grGreen('products')}`) } // Vita if (all || options.vita) { spinner.text = `getting vita ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Vita' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} vita ${grGreen('products')}`) } // Game Gear if (all || options['game-gear']) { spinner.text = `getting game gear ${grGreen('products')}` const products = await getAll(Product, { sort, filter: { and: [ video_game, { key: 'tags', comparison: 'contains', value: 'Game Gear' } ] } }, spinner) total.push(...products) spinner.succeed(`got ${products.length} game gear ${grGreen('products')}`) } options.products = total spinner.succeed(`got ${total.length} total ${grGreen('products')}`) }