"use strict"; const cheerio = require("cheerio"); let onclickRegex = /^loadDetailPage\('([^']+)'\);/; let urlRegex = /url\('([^']+)'\)/; function getOnclickUrl(onclickText) { let match = onclickRegex.exec(onclickText); if (match == null) { throw new Error("Expected URL not found in onclick handler"); } else { return match[1]; } } function getUrl(cssText) { let match = urlRegex.exec(cssText); if (match == null) { return null; /* Sometimes there is no picture */ } else { return match[1]; } } module.exports = { parseSearch: function (html) { let $ = cheerio.load(html); let products = $(".productresult .media").get().map((row) => { let $row = $(row); let onclickValue = $row.attr("onclick"); return getOnclickUrl(onclickValue); }); return products; }, parseProduct: function (html) { let $ = cheerio.load(html); let brandTextElement = $(".section-data h1 a#brandlink"); let brand = brandTextElement.text().trim(); brandTextElement.remove(); let product = $(".section-data h1").text().trim(); return { name: `${brand}, ${product}`, image: getUrl($(".assetImageDefault").attr("style")) } } };