Fix: Search matching with favorites

master
masterhc 12 months ago
parent ac97bb3731
commit 3c0ea00afe

@ -23,26 +23,21 @@ exports.search = async (req, res)=>
var data = await new Search(req.body.searchstring).searchExtraInfo();
if(!Array.isArray(data)) return res.sendStatus(404);
const favorites = await FavoriteModel.find()
const favoriteScanlators = favorites.map(favorite => favorite.scanlator);
data.forEach((item, index) =>
const favoriteScanlators = [...new Set(favorites.map(favorite => favorite.scanlator))];
for(let i = 0; i<data.length; i++)
{
if (favoriteScanlators.includes(item.scanlator))
for(let j= 0; j < data[i].Results.length; j++)
{
item.Results.find(result =>
const scanlator = data[i].scanlator;
if(!favoriteScanlators.includes(scanlator)) continue
let item = data[i].Results[j];
const matchingFavorite = favorites.find(fav=>
{
const matchingFavorite = favorites.find(favorite =>
{
return result.title === favorite.title && item.scanlator === favorite.scanlator;
});
if (matchingFavorite)
{
result.favorite = matchingFavorite._id;
return true;
}
return false;
});
return item.title === fav.title && scanlator === fav.scanlator;
})
if(matchingFavorite) data[i].Results[j].favorite = matchingFavorite._id;
}
});
}
data = data.filter(item => item.Results.length > 0)
data.sort((a,b)=>
{
@ -50,6 +45,7 @@ exports.search = async (req, res)=>
const scanlatorB = b.scanlator.toLowerCase();
return scanlatorA.localeCompare(scanlatorB);
})
console.log(data[1].Results)
res.render('searchResults.ejs', {data})
}

Loading…
Cancel
Save