From f52cd359aef3cd44a2930435fb8ca9887dcd5241 Mon Sep 17 00:00:00 2001 From: Edward Peterson Date: Fri, 17 Feb 2023 11:55:19 -0500 Subject: [PATCH] Fixed ebay processor --- index.js | 11 +++++++++-- processors/ebay.processor.js | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index fec6b06..17dea8e 100644 --- a/index.js +++ b/index.js @@ -24,7 +24,9 @@ app.post('/convertGalleryToHar', async (req, res) => { console.log(url); // get processor - const processor = _.find(processors, (processor) => ((new URL(url)).hostname) === (processor.baseUrl)); + const searchableHostname = (new URL(url)).hostname.replace(/^www\./i, ''); + console.log('Searching for hostname:', searchableHostname) + const processor = _.find(processors, (processor) => (searchableHostname) === (processor.baseUrl.replace(/^www\./i, ''))); if (!processor) { return res.status(400).json({ message: 'Could not find processor for url' @@ -45,7 +47,7 @@ app.post('/convertGalleryToHar', async (req, res) => { } }) -app.get('/supportedSites', async(req, res) => { +app.get('/supportedSites', async (req, res) => { res.status(200).json(processors.map(p => p.baseUrl)); }) app.listen(2667); @@ -56,6 +58,11 @@ async function run(url, processor) { }); const page = await browser.newPage(); + await page.setViewport({ + width: 1200, + height: 800 + }); + await page.setUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"); console.log('Loading page...'); await page.goto(url, { timeout: 60000 }); console.log('page loaded') diff --git a/processors/ebay.processor.js b/processors/ebay.processor.js index 7e43a29..41cb038 100644 --- a/processors/ebay.processor.js +++ b/processors/ebay.processor.js @@ -36,6 +36,10 @@ module.exports = { })); sources = sourcesFromThumbnailGallery; } + console.log('Performing autoscroll') + await autoScroll(page); //auto scroll to trigger loading of description iframe + console.log('autoscroll complete'); + const descriptionIframe = await page.$('#desc_ifr'); console.log('has description iframe?', !!descriptionIframe); const descriptionUrl = await page.evaluate(el => el.getAttribute('src'), descriptionIframe) @@ -110,4 +114,22 @@ async function gatewayclassiccars(page) { return { url: src }; })); return sources; +} +async function autoScroll(page){ + await page.evaluate(async () => { + await new Promise((resolve) => { + var totalHeight = 0; + var distance = 100; + var timer = setInterval(() => { + var scrollHeight = document.body.scrollHeight; + window.scrollBy(0, distance); + totalHeight += distance; + console.log(totalHeight); + if(totalHeight >= scrollHeight - window.innerHeight){ + clearInterval(timer); + resolve(); + } + }, 100); + }); + }); } \ No newline at end of file