diff --git a/README.md b/README.md index 91311e8..2344cf2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# **Aruppi API** (v4.0.9) +# **Aruppi API** (v4.1.0) > This API has everything about Japan, from anime, music, radio, images, videos ... to japanese culture > diff --git a/package.json b/package.json index 67960f9..40a572e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aruppi", - "version": "4.0.9", + "version": "4.1.0", "description": "Aruppi is a custom API to obtain data from the Japanese culture for the mobile app", "main": "./src/api/api.ts", "scripts": { diff --git a/src/controllers/AnimeController.ts b/src/controllers/AnimeController.ts index b360290..9d5b34b 100644 --- a/src/controllers/AnimeController.ts +++ b/src/controllers/AnimeController.ts @@ -1,5 +1,5 @@ -import {NextFunction, Request, Response} from 'express'; -import {requestGot} from '../utils/requestCall'; +import { NextFunction, Request, Response } from 'express'; +import { requestGot } from '../utils/requestCall'; import { imageUrlToBase64, jkanimeInfo, @@ -9,10 +9,10 @@ import { videoServersMonosChinos, videoServersTioAnime, } from '../utils/util'; -import {transformUrlServer} from '../utils/transformerUrl'; -import AnimeModel, {Anime as ModelA} from '../database/models/anime.model'; +import { transformUrlServer } from '../utils/transformerUrl'; +import AnimeModel, { Anime as ModelA } from '../database/models/anime.model'; import util from 'util'; -import {hashStringMd5} from '../utils/util'; +import { hashStringMd5 } from '../utils/util'; import { animeExtraInfo, getAnimeVideoPromo, @@ -20,7 +20,7 @@ import { getRelatedAnimesMAL, } from '../utils/util'; import urls from '../utils/urls'; -import {redisClient} from '../database/connection'; +import { redisClient } from '../database/connection'; // @ts-ignore redisClient.get = util.promisify(redisClient.get); @@ -80,7 +80,7 @@ interface Movie { export default class AnimeController { async schedule(req: Request, res: Response, next: NextFunction) { - const {day} = req.params; + const { day } = req.params; let data: any; try { @@ -116,7 +116,7 @@ export default class AnimeController { redisClient.set( `schedule_${hashStringMd5(day)}`, - JSON.stringify({day: animeList}), + JSON.stringify({ day: animeList }), ); /* After 24hrs expire the key. */ @@ -131,12 +131,12 @@ export default class AnimeController { day: animeList, }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } async top(req: Request, res: Response, next: NextFunction) { - const {type, subtype, page} = req.params; + const { type, subtype, page } = req.params; let data: any; try { @@ -163,7 +163,7 @@ export default class AnimeController { if (subtype !== undefined) { data = await requestGot( `${urls.BASE_JIKAN}top/${type}/${page}/${subtype}`, - {parse: true, scrapy: false}, + { parse: true, scrapy: false }, ); } else { data = await requestGot(`${urls.BASE_JIKAN}top/${type}/${page}`, { @@ -192,12 +192,12 @@ export default class AnimeController { if (subtype) { redisClient.set( `top_${hashStringMd5(`${type}:${subtype}:${page}`)}`, - JSON.stringify({top}), + JSON.stringify({ top }), ); } else { redisClient.set( `top_${hashStringMd5(`${type}:${page}`)}`, - JSON.stringify({top}), + JSON.stringify({ top }), ); } @@ -216,9 +216,9 @@ export default class AnimeController { } } - return res.status(200).json({top}); + return res.status(200).json({ top }); } else { - return res.status(400).json({message: 'Aruppi lost in the shell'}); + return res.status(400).json({ message: 'Aruppi lost in the shell' }); } } @@ -243,9 +243,9 @@ export default class AnimeController { })); if (animes.length > 0) { - res.status(200).send({animes}); + res.status(200).send({ animes }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } @@ -271,7 +271,6 @@ export default class AnimeController { scrapy: true, parse: false, }); - } catch (err) { return next(err); } @@ -323,7 +322,7 @@ export default class AnimeController { redisClient.set( `lastEpisodes_${hashStringMd5('lastEpisodes')}`, - JSON.stringify({episodes}), + JSON.stringify({ episodes }), ); /* After 24hrs expire the key. */ @@ -338,12 +337,12 @@ export default class AnimeController { episodes, }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } async getContentTv(req: Request, res: Response, next: NextFunction) { - const {type, page} = req.params; + const { type, page } = req.params; const url = 'tv'; let data: any; @@ -395,7 +394,7 @@ export default class AnimeController { redisClient.set( `contentTv_${hashStringMd5(`${type}:${page}`)}`, - JSON.stringify({animes}), + JSON.stringify({ animes }), ); /* After 24hrs expire the key. */ @@ -410,12 +409,12 @@ export default class AnimeController { animes, }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } async getContentSpecial(req: Request, res: Response, next: NextFunction) { - const {type, page} = req.params; + const { type, page } = req.params; const url = 'special'; let data: any; @@ -467,7 +466,7 @@ export default class AnimeController { redisClient.set( `contentSpecial_${hashStringMd5(`${type}:${page}`)}`, - JSON.stringify({animes}), + JSON.stringify({ animes }), ); /* After 24hrs expire the key. */ @@ -482,12 +481,12 @@ export default class AnimeController { animes, }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } async getContentOva(req: Request, res: Response, next: NextFunction) { - const {type, page} = req.params; + const { type, page } = req.params; const url = 'ova'; let data: any; @@ -539,7 +538,7 @@ export default class AnimeController { redisClient.set( `contentOva_${hashStringMd5(`${type}:${page}`)}`, - JSON.stringify({animes}), + JSON.stringify({ animes }), ); /* After 24hrs expire the key. */ @@ -554,12 +553,12 @@ export default class AnimeController { animes, }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } async getContentMovie(req: Request, res: Response, next: NextFunction) { - const {type, page} = req.params; + const { type, page } = req.params; const url = 'movies'; let data: any; @@ -611,7 +610,7 @@ export default class AnimeController { redisClient.set( `contentMovie_${hashStringMd5(`${type}:${page}`)}`, - JSON.stringify({animes}), + JSON.stringify({ animes }), ); /* After 24hrs expire the key. */ @@ -626,12 +625,12 @@ export default class AnimeController { animes, }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } async getEpisodes(req: Request, res: Response, next: NextFunction) { - const {title} = req.params; + const { title } = req.params; let searchAnime: ModelA | null; let episodes: any; @@ -649,7 +648,7 @@ export default class AnimeController { } searchAnime = await AnimeModel.findOne({ - $or: [{title: {$eq: title}}, {title: {$eq: `${title} (TV)`}}], + $or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }], }); } catch (err) { return next(err); @@ -676,7 +675,7 @@ export default class AnimeController { redisClient.set( `episodes_${hashStringMd5(title)}`, - JSON.stringify({episodes}), + JSON.stringify({ episodes }), ); /* After 24hrs expire the key. */ @@ -687,14 +686,14 @@ export default class AnimeController { ); } - res.status(200).json({episodes}); + res.status(200).json({ episodes }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } async getServers(req: Request, res: Response, next: NextFunction) { - const {id} = req.params; + const { id } = req.params; let data: any; try { @@ -710,15 +709,36 @@ export default class AnimeController { } } - if ( - id.split('/')[0] === 'ver' && - id.split('-').indexOf('espanol') !== -1 - ) { - data = await videoServersMonosChinos(id); - } else if (id.split('/')[0] === 'ver') { + let indicator = false; + + if (id.split('/')[0] === 'ver' && !indicator) { data = await videoServersTioAnime(id); - } else { - data = await videoServersJK(id); + + if (!data.name) { + indicator = true; + } + } + + if (id.split('/')[0] === 'ver' && !indicator) { + data = await videoServersMonosChinos(id); + + if (!data.name) { + console.log(data.name); + indicator = true; + } + } + + if (!indicator) { + data = undefined; + + indicator = true; + + /* + This part is just for handling the error + if the two above doesn't complete the operation + does not make sense to have the getServers from + JKAnime. + */ } if (data) { @@ -727,7 +747,7 @@ export default class AnimeController { redisClient.set( `servers_${hashStringMd5(id)}`, - JSON.stringify({servers: data}), + JSON.stringify({ servers: data }), ); /* After 24hrs expire the key. */ @@ -738,9 +758,9 @@ export default class AnimeController { ); } - res.status(200).json({servers: data}); + res.status(200).json({ servers: data }); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } catch (err) { return next(err); @@ -752,7 +772,7 @@ export default class AnimeController { let animeResult: any; try { - animeQuery = await AnimeModel.aggregate([{$sample: {size: 1}}]); + animeQuery = await AnimeModel.aggregate([{ $sample: { size: 1 } }]); } catch (err) { return next(err); } @@ -774,7 +794,7 @@ export default class AnimeController { res.set('Cache-Control', 'no-store'); res.status(200).json(animeResult); } else { - res.status(500).json({message: 'Aruppi lost in the shell'}); + res.status(500).json({ message: 'Aruppi lost in the shell' }); } } } diff --git a/src/routes.ts b/src/routes.ts index 546e818..d053dc0 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -26,7 +26,7 @@ routes.get('/api/v4/', (req: Request, res: Response) => { res.json({ message: 'Aruppi /api - 🎏', author: 'Jéluchu', - version: '4.0.9', + version: '4.1.0', credits: 'The bitch loves /apis that offers data to Aruppi App', entries: [ {