|
|
|
@ -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})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|