Optimization of Mueller Categories

This commit is contained in:
Markus Tiefenbacher 2023-06-30 10:23:27 +02:00
parent e1de63e040
commit acaa1f2787
4 changed files with 109 additions and 6061 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -97,45 +97,8 @@ exports.fetchData = async function () {
return muellerItems;
};
function getSubcategories(json) {
const subcategories = [];
exports.initializeCategoryMapping = async () => {};
function traverseCategories(categories, parent = "", url) {
if (categories.length === 0) {
subcategories.push({ id: parent, url: url, code: null });
return;
}
for (const category of categories) {
const { name, subcategories, url } = category;
const current = parent ? `${parent}/${name}` : name;
traverseCategories(subcategories, current, url);
}
}
traverseCategories(json.subcategories, json.name, json.url);
return subcategories;
}
exports.initializeCategoryMapping = async () => {
const categories = [];
const data = (await axios.get(`${exports.urlBase}/ajax/burgermenu/`)).data;
data.forEach((category) => {
const subcategories = getSubcategories(category);
categories.push(...subcategories);
});
utils.mergeAndSaveCategories("mueller-de", categories);
exports.categoryLookup = {};
for (const category of categories) {
exports.categoryLookup[category.id] = category;
}
};
exports.mapCategory = (rawItem) => {
return exports.categoryLookup[rawItem.category]?.code;
};
exports.mapCategory = (rawItem) => {};
exports.urlBase = "https://www.mueller.de";

View File

@ -123,8 +123,10 @@ exports.initializeCategoryMapping = async () => {
const data = (await axios.get(`${exports.urlBase}/ajax/burgermenu/`)).data;
data.forEach((category) => {
const subcategories = getSubcategories(category);
categories.push(...subcategories);
if (!categoriesExcludeList.includes(category.name)) {
const subcategories = getSubcategories(category);
categories.push(...subcategories);
}
});
utils.mergeAndSaveCategories("mueller", categories);