From bb2511eefc8c88d1217a68e89236a556cb517d2b Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 21 Jun 2023 18:20:36 +0200 Subject: [PATCH] Use local category file instead of querying site. --- stores/spar.js | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/stores/spar.js b/stores/spar.js index e4a1ae0..cd008f2 100644 --- a/stores/spar.js +++ b/stores/spar.js @@ -77,20 +77,26 @@ exports.fetchData = async function () { }; exports.initializeCategoryMapping = async () => { - const result = (await axios.get("https://www.interspar.at/shop/lebensmittel/")).data; - const root = HTMLParser.parse(result); - let categories = Array.from(root.querySelectorAll(`.flyout-categories__link`)) - .filter((el) => !(el.innerText.toLowerCase().includes("übersicht") || el.innerText.toLowerCase().includes("zurück"))) - .map((el) => { - const paths = el.attributes.href.split("/"); - const id = paths[paths.length - 2]; - return { - id, - description: el.innerText.trim(), - url: `https://www.interspar.at/shop/lebensmittel/c/${id}`, - code: null, - }; - }); + let categories = null; + try { + const result = (await axios.get("https://www.interspar.at/shop/lebensmittel/")).data; + const root = HTMLParser.parse(result); + categories = Array.from(root.querySelectorAll(`.flyout-categories__link`)) + .filter((el) => !(el.innerText.toLowerCase().includes("übersicht") || el.innerText.toLowerCase().includes("zurück"))) + .map((el) => { + const paths = el.attributes.href.split("/"); + const id = paths[paths.length - 2]; + return { + id, + description: el.innerText.trim(), + url: `https://www.interspar.at/shop/lebensmittel/c/${id}`, + code: null, + }; + }); + } catch (e) { + console.log("Couldn't fetch SPAR categories."); + categories = []; + } utils.mergeAndSaveCategories("spar", categories); exports.categoryLookup = {}; for (const category of categories) {