🐧 Fixing genres to get them from the directory

pull/44/head
capitanwesler 4 years ago
parent c0e1e5172b
commit b0e5b4c7bc

@ -402,30 +402,72 @@ export default class DirectoryController {
async getAnimeGenres(req: Request, res: Response, next: NextFunction) {
const { genre, order, page } = req.params;
let data: Genre[];
let resultReq: any;
let result: any;
const genres: any = {
accion: 'Acción',
'artes-marciales': 'Artes Marciales',
aventura: 'Aventuras',
carreras: 'Carreras',
'ciencia-ficcion': 'Ciencia Ficción',
comedia: 'Comedia',
demencia: 'Demencia',
demonios: 'Demonios',
deportes: 'Deportes',
drama: 'Drama',
ecchi: 'Ecchi',
escolares: 'Escolares',
espacial: 'Espacial',
fantasia: 'Fantasía',
harem: 'Harem',
historico: 'Historico',
infantil: 'Infantil',
josei: 'Josei',
juegos: 'Juegos',
magia: 'Magia',
mecha: 'Mecha',
militar: 'Militar',
misterio: 'Misterio',
musica: 'Música',
parodia: 'Parodia',
policia: 'Policía',
psicologico: 'Psicológico',
'recuentos-de-la-vida': 'Recuentos de la vida',
romance: 'Romance',
samurai: 'Samurai',
seinen: 'Seinen',
shoujo: 'Shoujo',
shounen: 'Shounen',
sobrenatural: 'Sobrenatural',
superpoderes: 'Superpoderes',
suspenso: 'Suspenso',
terror: 'Terror',
vampiros: 'Vampiros',
yaoi: 'Yaoi',
yuri: 'Yuri',
};
try {
if (genre === undefined && order === undefined && page === undefined) {
data = await GenreModel.find();
result = await AnimeModel.aggregate([{ $sample: { size: 25 } }]);
} else {
if (page !== undefined) {
resultReq = await requestGot(
`${urls.BASE_ANIMEFLV_JELU}Genres/${genre}/${order}/${page}`,
{ parse: true, scrapy: false },
);
if (genres.hasOwnProperty(genre)) {
if (page !== undefined && parseInt(page) > 1) {
result = await AnimeModel.find({ genres: genres[genre] })
.limit(25)
.skip(25 * parseInt(page));
} else {
resultReq = await requestGot(
`${urls.BASE_ANIMEFLV_JELU}Genres/${genre}/${order}/1`,
{ parse: true, scrapy: false },
);
result = await AnimeModel.find({ genres: genres[genre] }).limit(25);
}
} else {
return res.status(500).json({ message: 'Aruppi lost in the shell' });
}
}
} catch (err) {
return next(err);
}
const animes: any[] = resultReq.animes.map((item: any) => {
const animes: any[] = result.map((item: any) => {
return {
id: item.id,
title: item.title.trim(),

Loading…
Cancel
Save