UNPKG

@gameroom/cli

Version:

A command line tool for Gameroom

426 lines (421 loc) 22.4 kB
const nearestDime = require('./nearestDime') module.exports = (product, pc_product) => { // get prices const gamestop_price = pc_product['gamestop-price'], retail_cib_sell = pc_product['retail-cib-sell'], retail_loose_sell = pc_product['retail-loose-sell'] // get ratio if (!product.properties.price_ratio) product.properties.price_ratio = '1.00' const ratio = parseFloat(product.properties.price_ratio) const { properties } = product let baseline, game_plus_amount, game_only_amount, buy_in_game_plus_amount, buy_in_game_only_amount //------------------------------------------------------------------------------------------------------------------------------ PS4 + Xbox One if (product.tags.includes('PS4') || product.tags.includes('Xbox One')) { const price_floor = 300 baseline = gamestop_price //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount * 0.80) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 500 ? game_plus_amount * 0.1 : game_plus_amount < 1200 ? game_plus_amount * 0.15 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount < 3000 ? game_plus_amount * 0.25 : game_plus_amount < 4600 ? game_plus_amount * 0.33 : game_plus_amount < 6000 ? game_plus_amount * 0.50 : game_plus_amount * 0.30) buy_in_game_only_amount = -nearestDime(game_plus_amount < 2000 ? game_only_amount * 0.10 : game_plus_amount < 4000 ? game_only_amount * 0.15 : game_plus_amount < 6000 ? game_only_amount * 0.20 : game_plus_amount * 0.15) } //------------------------------------------------------------------------------------------------------------------------------ Switch else if (product.tags.includes('Switch')) { const price_floor = 1000 baseline = properties.gamestop_price //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount * 0.95) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 1200 ? game_plus_amount * 0.15 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount < 3000 ? game_plus_amount * 0.25 : game_plus_amount < 4600 ? game_plus_amount * 0.33 : game_plus_amount < 6000 ? game_plus_amount * 0.50 : game_plus_amount * 0.40) buy_in_game_only_amount = buy_in_game_plus_amount } //------------------------------------------------------------------------------------------------------------------------------ PS3 else if (product.tags.includes('PS3')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 3000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 400 ? game_plus_amount * 0.05 : game_plus_amount < 600 ? game_plus_amount * 0.10 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount * 0.30) buy_in_game_only_amount = -nearestDime(game_only_amount < 1000 ? game_only_amount * 0.10 : game_only_amount < 3000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ Xbox 360 else if (product.tags.includes('Xbox 360')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 3000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 400 ? game_plus_amount * 0.05 : game_plus_amount < 600 ? game_plus_amount * 0.10 : game_plus_amount < 800 ? game_plus_amount * 0.15 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount < 3000 ? game_plus_amount * 0.25 : game_plus_amount < 6000 ? game_plus_amount * 0.30 : game_plus_amount * 0.40) buy_in_game_only_amount = -nearestDime(game_only_amount < 1000 ? game_only_amount * 0.10 : game_only_amount < 3000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ Wii else if (product.tags.includes('Wii')) { const price_floor = 500 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 800 ? game_plus_amount * 0.15 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount < 3000 ? game_plus_amount * 0.25 : game_plus_amount < 6000 ? game_plus_amount * 0.30 : game_plus_amount * 0.40) buy_in_game_only_amount = -nearestDime(game_only_amount < 2000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ Wii U else if (product.tags.includes('Wii U')) { const price_floor = 500 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.10 : game_plus_amount < 800 ? game_plus_amount * 0.20 : game_plus_amount < 2000 ? game_plus_amount * 0.25 : game_plus_amount < 6000 ? game_plus_amount * 0.30 : game_plus_amount * 0.35) buy_in_game_only_amount = -nearestDime(game_only_amount < 2000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ PS2 + Xbox else if (product.tags.includes('PS2') || product.tags.includes('Xbox')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 3000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 800 ? game_plus_amount * 0.15 : game_plus_amount < 2000 ? game_plus_amount * 0.18 : game_plus_amount < 4000 ? game_plus_amount * 0.25 : game_plus_amount < 8000 ? game_plus_amount * 0.30 : game_plus_amount * 0.40) buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 3000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ Gamecube else if (product.tags.includes('Gamecube')) { const price_floor = 500 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.10 : game_plus_amount < 800 ? game_plus_amount * 0.15 : game_plus_amount < 2000 ? game_plus_amount * 0.25 : game_plus_amount < 4000 ? game_plus_amount * 0.30 : game_plus_amount < 8000 ? game_plus_amount * 0.40 : game_plus_amount * 0.55) buy_in_game_only_amount = -nearestDime(game_only_amount < 2000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ PS1 else if (product.tags.includes('PS1')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 800 ? game_plus_amount * 0.10 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount < 4000 ? game_plus_amount * 0.25 : game_plus_amount < 8000 ? game_plus_amount * 0.30 : game_plus_amount * 0.35) buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 1000 ? game_only_amount * 0.10 : game_only_amount < 4000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ Dreamcast else if (product.tags.includes('Dreamcast')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 800 ? game_plus_amount * 0.05 : game_plus_amount < 2000 ? game_plus_amount * 0.10 : game_plus_amount < 4000 ? game_plus_amount * 0.25 : game_plus_amount < 8000 ? game_plus_amount * 0.30 : game_plus_amount * 0.40) buy_in_game_only_amount = -nearestDime(game_only_amount < 1000 ? game_only_amount * 0.05 : game_only_amount < 2000 ? game_only_amount * 0.10 : game_only_amount < 4000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ Saturn else if (product.tags.includes('Saturn')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 800 ? game_plus_amount * 0.10 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount < 4000 ? game_plus_amount * 0.25 : game_plus_amount < 8000 ? game_plus_amount * 0.30 : game_plus_amount * 0.35) buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 1000 ? game_only_amount * 0.10 : game_only_amount < 2000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ Sega CD else if (product.tags.includes('Sega CD')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 800 ? game_plus_amount * 0.10 : game_plus_amount < 2000 ? game_plus_amount * 0.15 : game_plus_amount < 4000 ? game_plus_amount * 0.20 : game_plus_amount < 8000 ? game_plus_amount * 0.25 : game_plus_amount * 0.35) buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 1000 ? game_only_amount * 0.10 : game_only_amount < 2000 ? game_only_amount * 0.15 : game_only_amount * 0.20) } //------------------------------------------------------------------------------------------------------------------------------ CDi + 3DO else if (product.tags.includes('CD-i') || product.tags.includes('3DO')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount < 2000 ? game_plus_amount * 0.55 : game_plus_amount * 0.7) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 2000 ? game_plus_amount * 0.10 : game_plus_amount < 8000 ? game_plus_amount * 0.15 : game_plus_amount * 0.20) buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 1000 ? game_only_amount * 0.10 : game_only_amount * 0.15) } //------------------------------------------------------------------------------------------------------------------------------ NES + SNES else if (product.tags.includes('NES') || product.tags.includes('SNES')) { const price_floor = 300 baseline = retail_loose_sell //sell game_plus_amount = 0 game_only_amount = nearestDime(baseline * ratio) if (game_only_amount < price_floor) game_only_amount = price_floor //buy buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 800 ? game_only_amount * 0.10 : game_only_amount < 2000 ? game_only_amount * 0.15 : game_only_amount < 4000 ? game_only_amount * 0.30 : game_only_amount < 8000 ? game_only_amount * 0.40 : game_only_amount * 0.50) buy_in_game_plus_amount = 0 } //------------------------------------------------------------------------------------------------------------------------------ N64 else if (product.tags.includes('N64')) { const price_floor = 300 baseline = retail_loose_sell //sell game_plus_amount = 0 game_only_amount = nearestDime(baseline * ratio) if (game_only_amount < price_floor) game_only_amount = price_floor //buy buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 800 ? game_only_amount * 0.10 : game_only_amount < 2000 ? game_only_amount * 0.20 : game_only_amount < 4000 ? game_only_amount * 0.30 : game_only_amount < 8000 ? game_only_amount * 0.40 : game_only_amount * 0.50) buy_in_game_plus_amount = 0 } //------------------------------------------------------------------------------------------------------------------------------ Genesis + 32X + Master System else if (product.tags.includes('Genesis') || product.tags.includes('32X') || products.tags.includes('Master System')) { const price_floor = 300 baseline = retail_loose_sell //sell game_plus_amount = 0 game_only_amount = nearestDime(baseline * ratio) if (game_only_amount < price_floor) game_only_amount = price_floor //buy buy_in_game_plus_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.15 : game_only_amount < 800 ? game_only_amount * 0.20 : game_only_amount < 2000 ? game_only_amount * 0.25 : game_only_amount < 4000 ? game_only_amount * 0.30 : game_only_amount < 8000 ? game_only_amount * 0.35 : game_only_amount * 0.45) buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 800 ? game_only_amount * 0.10 : game_only_amount < 2000 ? game_only_amount * 0.15 : game_only_amount < 4000 ? game_only_amount * 0.20 : game_only_amount < 8000 ? game_only_amount * 0.25 : game_only_amount * 0.35) } //------------------------------------------------------------------------------------------------------------------------------ Atari + Vision(s) else if (product.tags.includes('Atari') || product.tags.includes('Intellivision') || product.tags.includes('Colecovision')) { const price_floor = 300 baseline = retail_loose_sell //sell game_plus_amount = 0 game_only_amount = nearestDime(baseline * ratio) if (game_only_amount < price_floor) game_only_amount = price_floor //buy buy_in_game_only_amount = -nearestDime(game_only_amount < 800 ? game_only_amount * 0.05 : game_only_amount < 4000 ? game_only_amount * 0.10 : game_only_amount < 8000 ? game_only_amount * 0.15 : game_only_amount * 0.20) buy_in_game_plus_amount = 0 } //------------------------------------------------------------------------------------------------------------------------------ GB + GBC else if (product.tags.includes('Gameboy') || product.tags.includes('Gameboy Color')) { const price_floor = 300 baseline = retail_loose_sell //sell game_plus_amount = 0 game_only_amount = nearestDime(baseline * ratio) if (game_only_amount < price_floor) game_only_amount = price_floor //buy buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 2000 ? game_only_amount * 0.10 : game_only_amount < 4000 ? game_only_amount * 0.20 : game_only_amount < 8000 ? game_only_amount * 0.25 : game_only_amount * 0.30) buy_in_game_plus_amount = 0 } //------------------------------------------------------------------------------------------------------------------------------ GBA else if (product.tags.includes('Gameboy Advance')) { const price_floor = 300 baseline = retail_loose_sell //sell game_plus_amount = 0 game_only_amount = nearestDime(baseline * ratio) if (game_only_amount < price_floor) game_only_amount = price_floor //buy buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 800 ? game_only_amount * 0.10 : game_only_amount < 2000 ? game_only_amount * 0.20 : game_only_amount < 8000 ? game_only_amount * 0.25 : game_only_amount * 0.35) buy_in_game_plus_amount = 0 } //------------------------------------------------------------------------------------------------------------------------------ 3DS + DS else if (product.tags.includes('3DS') || products.tags.includes('DS')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount * 0.90) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 800 ? game_plus_amount * 0.10 : game_plus_amount < 2000 ? game_plus_amount * 0.15 : game_plus_amount < 4000 ? game_plus_amount * 0.20 : game_plus_amount < 8000 ? game_plus_amount * 0.25 : game_plus_amount * 0.30) buy_in_game_only_amount = nearestDime(buy_in_game_plus_amount * 0.90) } //------------------------------------------------------------------------------------------------------------------------------ PSP else if (product.tags.includes('PSP')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount * 0.90) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 800 ? game_plus_amount * 0.10 : game_plus_amount < 2000 ? game_plus_amount * 0.15 : game_plus_amount < 4000 ? game_plus_amount * 0.20 : game_plus_amount * 0.25) buy_in_game_only_amount = nearestDime(buy_in_game_plus_amount * 0.90) } //------------------------------------------------------------------------------------------------------------------------------ Vita else if (product.tags.includes('Vita')) { const price_floor = 300 baseline = retail_cib_sell //sell game_plus_amount = nearestDime(baseline * ratio) if (game_plus_amount < price_floor) game_plus_amount = price_floor game_only_amount = nearestDime(game_plus_amount * 0.90) //buy buy_in_game_plus_amount = -nearestDime(game_plus_amount < 600 ? game_plus_amount * 0.05 : game_plus_amount < 800 ? game_plus_amount * 0.10 : game_plus_amount < 2000 ? game_plus_amount * 0.20 : game_plus_amount < 8000 ? game_plus_amount * 0.25 : game_plus_amount * 0.30) buy_in_game_only_amount = nearestDime(buy_in_game_plus_amount * 0.90) } //------------------------------------------------------------------------------------------------------------------------------ Game Gear else if (product.tags.includes('Game Gear')) { const price_floor = 300 baseline = retail_loose_sell //sell game_plus_amount = 0 game_only_amount = nearestDime(baseline * ratio) if (game_only_amount < price_floor) game_only_amount = price_floor //buy buy_in_game_only_amount = -nearestDime(game_only_amount < 600 ? game_only_amount * 0.05 : game_only_amount < 2000 ? game_only_amount * 0.10 : game_only_amount < 4000 ? game_only_amount * 0.15 : game_only_amount * 0.20) buy_in_game_plus_amount = 0 } // set baseline product.properties.price_baseline = baseline return { game_plus_amount, game_only_amount, buy_in_game_plus_amount, buy_in_game_only_amount } }