39 lines
956 B
JavaScript
39 lines
956 B
JavaScript
require('dotenv').config()
|
|
const puppeteer = require('puppeteer')
|
|
const items = require('./items')
|
|
const output = require('./output')
|
|
|
|
async function initPuppeteer (page) {
|
|
await page.setDefaultNavigationTimeout(0)
|
|
await page.setRequestInterception(true)
|
|
page.on('request', (request) => {
|
|
if (['image'].includes(request.resourceType())) request.abort()
|
|
else request.continue()
|
|
})
|
|
}
|
|
|
|
(async () => {
|
|
const browser = await puppeteer.launch({
|
|
executablePath: process.env.EXECUTABLE
|
|
})
|
|
const page = await browser.newPage()
|
|
await initPuppeteer(page)
|
|
|
|
for (const item of items) {
|
|
console.log(`Looking at ${item.name}`)
|
|
|
|
let partsPrice = 0
|
|
for (const part of item.parts) {
|
|
partsPrice += await part.getPrice(page)
|
|
}
|
|
|
|
const setPrice = await item.set.getPrice(page)
|
|
if (partsPrice < setPrice) {
|
|
output.addItem(item.name, partsPrice, setPrice)
|
|
}
|
|
}
|
|
|
|
await browser.close()
|
|
output.submit()
|
|
})()
|