const axios = require("axios"); const utils = require("./utils"); const MAXITEMS = 10000; const conversions = { bd: { unit: "stk", factor: 1 }, g: { unit: "g", factor: 1 }, gr: { unit: "g", factor: 1 }, kg: { unit: "g", factor: 1000 }, lt: { unit: "ml", factor: 1000 }, ml: { unit: "ml", factor: 1 }, pk: { unit: "stk", factor: 1 }, pa: { unit: "stk", factor: 1 }, rl: { unit: "stk", factor: 1 }, st: { unit: "stk", factor: 1 }, tb: { unit: "stk", factor: 1 }, wg: { unit: "wg", factor: 1 }, }; exports.getCanonical = function (item, today) { let quantity = item.amount; let unit = item.volumeLabelKey; return utils.convertUnit({ id: item.productId, name: item.name, price: item.price.regular.value / 100, priceHistory: [{ date: today, price: item.price.regular.value / 100 }], isWeighted: item.isWeightArticle, unit, quantity, bio: item.name.toLowerCase().includes("bio") && !item.name.toLowerCase().includes("fabio"), url: item.slug, }, conversions, 'penny'); } exports.fetchData = async function () { hits = 100; page = 0; done = false; result = []; while (!done) { const PENNY_SEARCH = `https://www.penny.at/api/products?page=${page}&pageSize=${hits}`; data = (await axios.get(PENNY_SEARCH)).data; done = data.count < hits || page * hits > MAXITEMS; page++; result = result.concat(data.results); } return result; } exports.urlBase = "https://www.penny.at/produkte/"