From 52317d42119ed9a1927317ab25dae8bb99577e6f Mon Sep 17 00:00:00 2001 From: Nick Leeman Date: Fri, 26 Mar 2021 16:28:03 +0100 Subject: [PATCH] added maxiaxi support! --- src/core.ts | 12 ++++++++---- src/modules/websites.ts | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/core.ts b/src/core.ts index bfe3dbc..c62f716 100644 --- a/src/core.ts +++ b/src/core.ts @@ -34,7 +34,8 @@ import { Coolblue, WifiMedia, Ep, - Kinq + Kinq, + Maxiaxi } from "./modules/websites"; // Globals @@ -43,12 +44,12 @@ let sitemapUrl: string = ""; let allProducts: Array = []; let allBlogUrls: Array = []; -debugStart(); -// start(); +// debugStart(); +start(); async function debugStart() { browser = await puppeteer.launch({ headless: false }); - console.log(await crawlProductStock("https://www.kinq.nl/humax-eye-hd-cloud-camera-duo-pack.html")); + console.log(await crawlProductStock("https://www.maxiaxi.com/complete-lichtset-met-jelly-ball-laser-en-rookmachine/")); } async function start() { @@ -291,6 +292,9 @@ async function crawlProductStock(url: string) { case "kinq.nl": return [domain, page.url(), await Kinq.check(html)]; + + case "maxiaxi.com": + return [domain, page.url(), await Maxiaxi.check(html)]; default: console.error(`-- ${domain} is not an available website module! Can't check stock!`); diff --git a/src/modules/websites.ts b/src/modules/websites.ts index 3a3b390..c67ec22 100644 --- a/src/modules/websites.ts +++ b/src/modules/websites.ts @@ -563,4 +563,32 @@ export namespace Kinq { return false; } } +} + +export namespace Maxiaxi { + export async function check(html: string) { + try { + const $ = cheerio.load(html); + let stock = false; + + $('script[type="application/ld+json"]').each((index, element) => { + let json = JSON.parse($(element).html()); + + if (json["@type"]) { + if (json["@type"] == "Product") { + if (json["offers"][0]["availability"] == "http://schema.org/InStock") { + stock = true; + return; + } + } + } + }); + + return stock; + } catch (error) { + console.log(error); + console.error(`Error occured during stock check!`); + return false; + } + } } \ No newline at end of file