36 lines
919 B
JavaScript
36 lines
919 B
JavaScript
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: 'chromium-browser' })
|
|
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()
|
|
})()
|