cine-kids/merge.js

30 lines
759 B
JavaScript

// Utilitaire pour merger les résultats de plusieurs agrégateurs
function normalizeTitle(str) {
return str ? str.toLowerCase().replace(/[^a-z0-9]/g, '') : '';
}
function normalizeTitle(str) {
return str ? str.toLowerCase().replace(/[^a-z0-9]/g, '') : '';
}
function mergeResults(arrays) {
const map = {};
arrays.flat().forEach(entry => {
// Note: only title, fallback if no year
const key = normalizeTitle(entry.title) + (entry.year ? '|' + entry.year : '');
if (!map[key]) {
map[key] = {
title: entry.title,
year: entry.year,
results: []
};
}
map[key].results.push({
source: entry.source,
...entry
});
});
return Object.values(map);
}
module.exports = { mergeResults };