diff --git a/controllers/api.js b/controllers/api.js index 6262cd3..e7dafb7 100644 --- a/controllers/api.js +++ b/controllers/api.js @@ -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 + 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}) }