🔧 Fixing wrong date and work without redis

pull/42/head
capitanwesler 4 years ago
parent a4d9332510
commit 0be12412ce

@ -1,4 +1,4 @@
# **Aruppi API** (v4.0.3) # **Aruppi API** (v4.0.4)
> This API has everything about Japan, from anime, music, radio, images, videos ... to japanese culture > This API has everything about Japan, from anime, music, radio, images, videos ... to japanese culture
> >

@ -1,6 +1,6 @@
{ {
"name": "aruppi", "name": "aruppi",
"version": "4.0.3", "version": "4.0.4",
"description": "Aruppi is a custom API to obtain data from the Japanese culture for the mobile app", "description": "Aruppi is a custom API to obtain data from the Japanese culture for the mobile app",
"main": "./src/api/api.ts", "main": "./src/api/api.ts",
"scripts": { "scripts": {

@ -84,6 +84,7 @@ export default class AnimeController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`schedule_${hashStringMd5(day)}`, `schedule_${hashStringMd5(day)}`,
); );
@ -92,12 +93,13 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot(`${urls.BASE_JIKAN}schedule/${day}`, { data = await requestGot(`${urls.BASE_JIKAN}schedule/${day}`, {
parse: true, parse: true,
scrapy: false, scrapy: false,
}); });
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -109,6 +111,7 @@ export default class AnimeController {
})); }));
if (animeList.length > 0) { if (animeList.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -122,6 +125,7 @@ export default class AnimeController {
`schedule_${hashStringMd5(day)}`, `schedule_${hashStringMd5(day)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ res.status(200).json({
day: animeList, day: animeList,
@ -136,6 +140,7 @@ export default class AnimeController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
let resultQueryRedis: any; let resultQueryRedis: any;
if (subtype) { if (subtype) {
@ -152,7 +157,9 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
if (subtype !== undefined) { if (subtype !== undefined) {
data = await requestGot( data = await requestGot(
`${urls.BASE_JIKAN}top/${type}/${page}/${subtype}`, `${urls.BASE_JIKAN}top/${type}/${page}/${subtype}`,
@ -164,7 +171,6 @@ export default class AnimeController {
scrapy: false, scrapy: false,
}); });
} }
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -181,6 +187,7 @@ export default class AnimeController {
})); }));
if (top.length > 0) { if (top.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
if (subtype) { if (subtype) {
redisClient.set( redisClient.set(
@ -207,6 +214,7 @@ export default class AnimeController {
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
} }
}
return res.status(200).json({ top }); return res.status(200).json({ top });
} else { } else {
@ -248,6 +256,7 @@ export default class AnimeController {
let animeList: any[] = []; let animeList: any[] = [];
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`lastEpisodes_${hashStringMd5('lastEpisodes')}`, `lastEpisodes_${hashStringMd5('lastEpisodes')}`,
); );
@ -256,7 +265,9 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
// @ANIMEFLV // @ANIMEFLV
// data = await requestGot( // data = await requestGot(
// `${urls.BASE_ANIMEFLV_JELU}LatestEpisodesAdded`, // `${urls.BASE_ANIMEFLV_JELU}LatestEpisodesAdded`,
@ -270,7 +281,6 @@ export default class AnimeController {
scrapy: true, scrapy: true,
parse: false, parse: false,
}); });
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -329,6 +339,7 @@ export default class AnimeController {
} }
if (episodes.length > 0) { if (episodes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -342,6 +353,7 @@ export default class AnimeController {
`lastEpisodes_${hashStringMd5('lastEpisodes')}`, `lastEpisodes_${hashStringMd5('lastEpisodes')}`,
parseInt(`${+new Date() / 1000}`, 10) + 1800, parseInt(`${+new Date() / 1000}`, 10) + 1800,
); );
}
res.status(200).json({ res.status(200).json({
episodes, episodes,
@ -357,6 +369,7 @@ export default class AnimeController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`contentTv_${hashStringMd5(`${type}:${page}`)}`, `contentTv_${hashStringMd5(`${type}:${page}`)}`,
); );
@ -365,7 +378,9 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot( data = await requestGot(
`${urls.BASE_ANIMEFLV_JELU}${ `${urls.BASE_ANIMEFLV_JELU}${
url.charAt(0).toUpperCase() + url.slice(1) url.charAt(0).toUpperCase() + url.slice(1)
@ -375,7 +390,6 @@ export default class AnimeController {
scrapy: false, scrapy: false,
}, },
); );
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -397,6 +411,7 @@ export default class AnimeController {
}); });
if (animes.length > 0) { if (animes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -410,6 +425,7 @@ export default class AnimeController {
`contentTv_${hashStringMd5(`${type}:${page}`)}`, `contentTv_${hashStringMd5(`${type}:${page}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ res.status(200).json({
animes, animes,
@ -425,6 +441,7 @@ export default class AnimeController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`contentSpecial_${hashStringMd5(`${type}:${page}`)}`, `contentSpecial_${hashStringMd5(`${type}:${page}`)}`,
); );
@ -433,7 +450,9 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot( data = await requestGot(
`${urls.BASE_ANIMEFLV_JELU}${ `${urls.BASE_ANIMEFLV_JELU}${
url.charAt(0).toUpperCase() + url.slice(1) url.charAt(0).toUpperCase() + url.slice(1)
@ -443,7 +462,6 @@ export default class AnimeController {
scrapy: false, scrapy: false,
}, },
); );
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -465,6 +483,7 @@ export default class AnimeController {
}); });
if (animes.length > 0) { if (animes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -478,6 +497,7 @@ export default class AnimeController {
`contentSpecial_${hashStringMd5(`${type}:${page}`)}`, `contentSpecial_${hashStringMd5(`${type}:${page}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ res.status(200).json({
animes, animes,
@ -493,6 +513,7 @@ export default class AnimeController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`contentOva_${hashStringMd5(`${type}:${page}`)}`, `contentOva_${hashStringMd5(`${type}:${page}`)}`,
); );
@ -501,7 +522,9 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot( data = await requestGot(
`${urls.BASE_ANIMEFLV_JELU}${ `${urls.BASE_ANIMEFLV_JELU}${
url.charAt(0).toUpperCase() + url.slice(1) url.charAt(0).toUpperCase() + url.slice(1)
@ -511,7 +534,6 @@ export default class AnimeController {
scrapy: false, scrapy: false,
}, },
); );
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -533,6 +555,7 @@ export default class AnimeController {
}); });
if (animes.length > 0) { if (animes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -546,6 +569,7 @@ export default class AnimeController {
`contentOva_${hashStringMd5(`${type}:${page}`)}`, `contentOva_${hashStringMd5(`${type}:${page}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ res.status(200).json({
animes, animes,
@ -561,6 +585,7 @@ export default class AnimeController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`contentMovie_${hashStringMd5(`${type}:${page}`)}`, `contentMovie_${hashStringMd5(`${type}:${page}`)}`,
); );
@ -569,7 +594,9 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot( data = await requestGot(
`${urls.BASE_ANIMEFLV_JELU}${ `${urls.BASE_ANIMEFLV_JELU}${
url.charAt(0).toUpperCase() + url.slice(1) url.charAt(0).toUpperCase() + url.slice(1)
@ -579,7 +606,6 @@ export default class AnimeController {
scrapy: false, scrapy: false,
}, },
); );
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -601,6 +627,7 @@ export default class AnimeController {
}); });
if (animes.length > 0) { if (animes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -614,6 +641,7 @@ export default class AnimeController {
`contentMovie_${hashStringMd5(`${type}:${page}`)}`, `contentMovie_${hashStringMd5(`${type}:${page}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ res.status(200).json({
animes, animes,
@ -629,6 +657,7 @@ export default class AnimeController {
let episodes: any; let episodes: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`episodes_${hashStringMd5(title)}`, `episodes_${hashStringMd5(title)}`,
); );
@ -637,11 +666,12 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
searchAnime = await AnimeModel.findOne({ searchAnime = await AnimeModel.findOne({
$or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }], $or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }],
}); });
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -662,6 +692,7 @@ export default class AnimeController {
} }
if (episodes) { if (episodes) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -675,6 +706,7 @@ export default class AnimeController {
`episodes_${hashStringMd5(title)}`, `episodes_${hashStringMd5(title)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ episodes }); res.status(200).json({ episodes });
} else { } else {
@ -687,6 +719,7 @@ export default class AnimeController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`servers_${hashStringMd5(id)}`, `servers_${hashStringMd5(id)}`,
); );
@ -695,7 +728,9 @@ export default class AnimeController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
if (isNaN(parseInt(id.split('/')[0]))) { if (isNaN(parseInt(id.split('/')[0]))) {
if (id.split('/')[0] === 'ver') { if (id.split('/')[0] === 'ver') {
data = await videoServersMonosChinos(id); data = await videoServersMonosChinos(id);
@ -712,6 +747,7 @@ export default class AnimeController {
} }
if (data) { if (data) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -725,12 +761,12 @@ export default class AnimeController {
`servers_${hashStringMd5(id)}`, `servers_${hashStringMd5(id)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ servers: data }); res.status(200).json({ servers: data });
} else { } else {
res.status(500).json({ message: 'Aruppi lost in the shell' }); res.status(500).json({ message: 'Aruppi lost in the shell' });
} }
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -752,7 +788,6 @@ export default class AnimeController {
title: animeQuery[0].title || null, title: animeQuery[0].title || null,
poster: animeQuery[0].poster || null, poster: animeQuery[0].poster || null,
synopsis: animeQuery[0].description || null, synopsis: animeQuery[0].description || null,
status: animeQuery[0].state || null,
type: animeQuery[0].type || null, type: animeQuery[0].type || null,
rating: animeQuery[0].score || null, rating: animeQuery[0].score || null,
genres: animeQuery[0].genres || null, genres: animeQuery[0].genres || null,
@ -767,7 +802,6 @@ export default class AnimeController {
title: animeQuery[0].title || null, title: animeQuery[0].title || null,
poster: animeQuery[0].poster || null, poster: animeQuery[0].poster || null,
synopsis: animeQuery[0].description || null, synopsis: animeQuery[0].description || null,
status: animeQuery[0].state || null,
type: animeQuery[0].type || null, type: animeQuery[0].type || null,
rating: animeQuery[0].score || null, rating: animeQuery[0].score || null,
genres: animeQuery[0].genres || null, genres: animeQuery[0].genres || null,

@ -61,7 +61,6 @@ export default class DirectoryController {
poster: item.poster, poster: item.poster,
type: item.type, type: item.type,
genres: item.genres, genres: item.genres,
state: item.state,
score: item.score, score: item.score,
source: item.source, source: item.source,
description: item.description, description: item.description,
@ -87,7 +86,6 @@ export default class DirectoryController {
poster: item.poster, poster: item.poster,
type: item.type, type: item.type,
genres: item.genres, genres: item.genres,
state: item.state,
score: item.score, score: item.score,
source: item.source, source: item.source,
description: item.description, description: item.description,
@ -111,6 +109,7 @@ export default class DirectoryController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`season_${hashStringMd5(`${year}:${type}`)}`, `season_${hashStringMd5(`${year}:${type}`)}`,
); );
@ -119,12 +118,13 @@ export default class DirectoryController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot(`${urls.BASE_JIKAN}season/${year}/${type}`, { data = await requestGot(`${urls.BASE_JIKAN}season/${year}/${type}`, {
scrapy: false, scrapy: false,
parse: true, parse: true,
}); });
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -138,6 +138,7 @@ export default class DirectoryController {
}); });
if (season.length > 0) { if (season.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -151,6 +152,7 @@ export default class DirectoryController {
`season_${hashStringMd5(`${year}:${type}`)}`, `season_${hashStringMd5(`${year}:${type}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ res.status(200).json({
season, season,
@ -164,6 +166,7 @@ export default class DirectoryController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`allSeasons_${hashStringMd5('allSeasons')}`, `allSeasons_${hashStringMd5('allSeasons')}`,
); );
@ -172,12 +175,13 @@ export default class DirectoryController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot(`${urls.BASE_JIKAN}season/archive`, { data = await requestGot(`${urls.BASE_JIKAN}season/archive`, {
parse: true, parse: true,
scrapy: false, scrapy: false,
}); });
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -190,6 +194,7 @@ export default class DirectoryController {
}); });
if (archive.length > 0) { if (archive.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -203,6 +208,7 @@ export default class DirectoryController {
`allSeasons_${hashStringMd5('allSeasons')}`, `allSeasons_${hashStringMd5('allSeasons')}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ archive }); res.status(200).json({ archive });
} else { } else {
@ -214,6 +220,7 @@ export default class DirectoryController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`laterSeasons_${hashStringMd5('laterSeasons')}`, `laterSeasons_${hashStringMd5('laterSeasons')}`,
); );
@ -222,12 +229,13 @@ export default class DirectoryController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot(`${urls.BASE_JIKAN}season/later`, { data = await requestGot(`${urls.BASE_JIKAN}season/later`, {
parse: true, parse: true,
scrapy: false, scrapy: false,
}); });
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -241,6 +249,7 @@ export default class DirectoryController {
}); });
if (future.length > 0) { if (future.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -254,6 +263,7 @@ export default class DirectoryController {
`laterSeasons_${hashStringMd5('laterSeasons')}`, `laterSeasons_${hashStringMd5('laterSeasons')}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ future }); res.status(200).json({ future });
} else { } else {
@ -267,6 +277,7 @@ export default class DirectoryController {
let resultAnime: any; let resultAnime: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`moreInfo_${hashStringMd5(title)}`, `moreInfo_${hashStringMd5(title)}`,
); );
@ -275,7 +286,9 @@ export default class DirectoryController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
resultQuery = await AnimeModel.findOne({ resultQuery = await AnimeModel.findOne({
$or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }], $or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }],
}); });
@ -332,12 +345,12 @@ export default class DirectoryController {
resultAnime = undefined; resultAnime = undefined;
break; break;
} }
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
if (resultAnime) { if (resultAnime) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -351,6 +364,7 @@ export default class DirectoryController {
`moreInfo_${hashStringMd5(title)}`, `moreInfo_${hashStringMd5(title)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json(resultAnime); res.status(200).json(resultAnime);
} else { } else {

@ -69,6 +69,7 @@ export default class UtilsController {
let feed: CustomFeed & Parser.Output<CustomItem>; let feed: CustomFeed & Parser.Output<CustomItem>;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`anitakume_${hashStringMd5('anitakume')}`, `anitakume_${hashStringMd5('anitakume')}`,
); );
@ -77,9 +78,10 @@ export default class UtilsController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else {
feed = await parser.parseURL(urls.BASE_IVOOX);
} }
}
feed = await parser.parseURL(urls.BASE_IVOOX);
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -116,6 +118,7 @@ export default class UtilsController {
}); });
if (podcast.length > 0) { if (podcast.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -129,6 +132,7 @@ export default class UtilsController {
`anitakume_${hashStringMd5('anitakume')}`, `anitakume_${hashStringMd5('anitakume')}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ podcast }); res.status(200).json({ podcast });
} else { } else {
@ -153,6 +157,7 @@ export default class UtilsController {
]; ];
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`news_${hashStringMd5('news')}`, `news_${hashStringMd5('news')}`,
); );
@ -161,7 +166,9 @@ export default class UtilsController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
for (const rssPage of pagesRss) { for (const rssPage of pagesRss) {
const feed = await parser.parseURL(rssPage.url); const feed = await parser.parseURL(rssPage.url);
@ -179,12 +186,12 @@ export default class UtilsController {
news.push(formattedObject); news.push(formattedObject);
}); });
} }
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
if (news.length > 0) { if (news.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -198,6 +205,7 @@ export default class UtilsController {
`news_${hashStringMd5('news')}`, `news_${hashStringMd5('news')}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ news }); res.status(200).json({ news });
} else { } else {
@ -210,6 +218,7 @@ export default class UtilsController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`images_${hashStringMd5(title)}`, `images_${hashStringMd5(title)}`,
); );
@ -218,12 +227,13 @@ export default class UtilsController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot( data = await requestGot(
`${urls.BASE_QWANT}count=51&q=${title}&t=images&safesearch=1&locale=es_ES&uiv=4`, `${urls.BASE_QWANT}count=51&q=${title}&t=images&safesearch=1&locale=es_ES&uiv=4`,
{ scrapy: false, parse: true }, { scrapy: false, parse: true },
); );
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -237,6 +247,7 @@ export default class UtilsController {
}); });
if (results.length > 0) { if (results.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -250,6 +261,7 @@ export default class UtilsController {
`images_${hashStringMd5(title)}`, `images_${hashStringMd5(title)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ images: results }); res.status(200).json({ images: results });
} else { } else {
@ -262,6 +274,7 @@ export default class UtilsController {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`videos_${hashStringMd5(channelId)}`, `videos_${hashStringMd5(channelId)}`,
); );
@ -270,12 +283,13 @@ export default class UtilsController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
data = await requestGot( data = await requestGot(
`${urls.BASE_YOUTUBE}${channelId}&part=snippet,id&order=date&maxResults=50`, `${urls.BASE_YOUTUBE}${channelId}&part=snippet,id&order=date&maxResults=50`,
{ scrapy: false, parse: true }, { scrapy: false, parse: true },
); );
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
@ -291,6 +305,7 @@ export default class UtilsController {
}); });
if (results.length > 0) { if (results.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -304,6 +319,7 @@ export default class UtilsController {
`videos_${hashStringMd5(channelId)}`, `videos_${hashStringMd5(channelId)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ videos: results }); res.status(200).json({ videos: results });
} else { } else {
@ -442,6 +458,7 @@ export default class UtilsController {
let themes: any; let themes: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`oped_${hashStringMd5(title)}`, `oped_${hashStringMd5(title)}`,
); );
@ -450,14 +467,16 @@ export default class UtilsController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else {
themes = await structureThemes(await themeParser.serie(title), true);
} }
}
themes = await structureThemes(await themeParser.serie(title), true);
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
if (themes) { if (themes) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -471,6 +490,7 @@ export default class UtilsController {
`oped_${hashStringMd5(title)}`, `oped_${hashStringMd5(title)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
res.status(200).json({ themes }); res.status(200).json({ themes });
} else { } else {
@ -484,6 +504,7 @@ export default class UtilsController {
let resultQueryRedis: any; let resultQueryRedis: any;
try { try {
if (redisClient.connected) {
if (year) { if (year) {
resultQueryRedis = await redisClient.get( resultQueryRedis = await redisClient.get(
`themesyear_${hashStringMd5(year)}`, `themesyear_${hashStringMd5(year)}`,
@ -498,18 +519,20 @@ export default class UtilsController {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return res.status(200).json(resultRedis); return res.status(200).json(resultRedis);
} else { }
}
if (year === undefined) { if (year === undefined) {
themes = await themeParser.allYears(); themes = await themeParser.allYears();
} else { } else {
themes = await structureThemes(await themeParser.year(year), false); themes = await structureThemes(await themeParser.year(year), false);
} }
}
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
if (themes.length > 0) { if (themes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
if (year) { if (year) {
@ -537,6 +560,7 @@ export default class UtilsController {
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
} }
}
res.status(200).json({ themes }); res.status(200).json({ themes });
} else { } else {

@ -40,8 +40,30 @@ export const redisClient: RedisClient = redis.createClient({
host: process.env.REDIS_HOST, host: process.env.REDIS_HOST,
port: parseInt(process.env.REDIS_PORT!), port: parseInt(process.env.REDIS_PORT!),
password: process.env.REDIS_PASSWORD, password: process.env.REDIS_PASSWORD,
retry_strategy: function (options) {
if (options.error && options.error.code === 'ECONNREFUSED') {
// End reconnecting on a specific error and flush all commands with
// a individual error
return new Error('The server refused the connection');
}
if (options.total_retry_time > 1000 * 60 * 60) {
// End reconnecting after a specific timeout and flush all commands
// with a individual error
return new Error('Retry time exhausted');
}
if (options.attempt > 10) {
// End reconnecting with built in error
return undefined;
}
// reconnect after
return Math.min(options.attempt * 100, 3000);
},
}); });
redisClient.on('connect', () => { redisClient.on('connect', () => {
console.log('Redis connected: redis.'); console.log('Redis connected: redis.');
}); });
redisClient.on('error', function (err) {
console.log('Redis error: ' + err);
});

@ -12,7 +12,6 @@ export interface Anime extends Document {
poster: string; poster: string;
type: string; type: string;
genres: Types.Array<string>; genres: Types.Array<string>;
state: string;
score: string; score: string;
source: string; source: string;
description: string; description: string;
@ -26,7 +25,6 @@ const AnimeSchema: Schema = new Schema({
poster: { type: String }, poster: { type: String },
type: { type: String }, type: { type: String },
genres: [{ type: String }], genres: [{ type: String }],
state: { type: String },
score: { type: String }, score: { type: String },
source: { type: String }, source: { type: String },
description: { type: String }, description: { type: String },

@ -56,6 +56,7 @@ export const animeExtraInfo = async (mal_id: number) => {
}; };
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`extraInfo_${hashStringMd5(`${mal_id}`)}`, `extraInfo_${hashStringMd5(`${mal_id}`)}`,
); );
@ -64,14 +65,15 @@ export const animeExtraInfo = async (mal_id: number) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}`, { data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}`, {
parse: true, parse: true,
scrapy: false, scrapy: false,
}); });
broadcast = data.broadcast.split('at')[0].trim().toLowerCase() || null; broadcast = data.broadcast.split('at')[0].trim().toLowerCase() || null;
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -101,6 +103,7 @@ export const animeExtraInfo = async (mal_id: number) => {
}; };
if (formattedObject) { if (formattedObject) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -114,6 +117,7 @@ export const animeExtraInfo = async (mal_id: number) => {
`extraInfo_${hashStringMd5(`${mal_id}`)}`, `extraInfo_${hashStringMd5(`${mal_id}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return formattedObject; return formattedObject;
} else { } else {
@ -125,6 +129,7 @@ export const getAnimeVideoPromo = async (mal_id: number) => {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`promoInfo_${hashStringMd5(`${mal_id}`)}`, `promoInfo_${hashStringMd5(`${mal_id}`)}`,
); );
@ -133,12 +138,13 @@ export const getAnimeVideoPromo = async (mal_id: number) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}/videos`, { data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}/videos`, {
parse: true, parse: true,
scrapy: false, scrapy: false,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -152,6 +158,7 @@ export const getAnimeVideoPromo = async (mal_id: number) => {
}); });
if (promo.length > 0) { if (promo.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -165,6 +172,7 @@ export const getAnimeVideoPromo = async (mal_id: number) => {
`promoInfo_${hashStringMd5(`${mal_id}`)}`, `promoInfo_${hashStringMd5(`${mal_id}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return promo; return promo;
} else { } else {
@ -176,6 +184,7 @@ export const getAnimeCharacters = async (mal_id: number) => {
let data: any; let data: any;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`charactersInfo_${hashStringMd5(`${mal_id}`)}`, `charactersInfo_${hashStringMd5(`${mal_id}`)}`,
); );
@ -184,12 +193,13 @@ export const getAnimeCharacters = async (mal_id: number) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
data = await requestGot( data = await requestGot(
`${urls.BASE_JIKAN}anime/${mal_id}/characters_staff`, `${urls.BASE_JIKAN}anime/${mal_id}/characters_staff`,
{ parse: true, scrapy: false }, { parse: true, scrapy: false },
); );
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -204,6 +214,7 @@ export const getAnimeCharacters = async (mal_id: number) => {
}); });
if (characters.length > 0) { if (characters.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -217,6 +228,7 @@ export const getAnimeCharacters = async (mal_id: number) => {
`charactersInfo_${hashStringMd5(`${mal_id}`)}`, `charactersInfo_${hashStringMd5(`${mal_id}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return characters; return characters;
} else { } else {
@ -251,6 +263,7 @@ export const getRelatedAnimesFLV = async (id: string) => {
let $: cheerio.Root; let $: cheerio.Root;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`relatedFLV_${hashStringMd5(id)}`, `relatedFLV_${hashStringMd5(id)}`,
); );
@ -259,12 +272,13 @@ export const getRelatedAnimesFLV = async (id: string) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
$ = await requestGot(`${urls.BASE_ANIMEFLV}/anime/${id}`, { $ = await requestGot(`${urls.BASE_ANIMEFLV}/anime/${id}`, {
parse: false, parse: false,
scrapy: true, scrapy: true,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -292,6 +306,7 @@ export const getRelatedAnimesFLV = async (id: string) => {
} }
if (relatedAnimes.length > 0) { if (relatedAnimes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -305,6 +320,7 @@ export const getRelatedAnimesFLV = async (id: string) => {
`relatedFLV_${hashStringMd5(id)}`, `relatedFLV_${hashStringMd5(id)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return relatedAnimes; return relatedAnimes;
} else { } else {
@ -316,6 +332,7 @@ export const getRelatedAnimesMAL = async (mal_id: number) => {
let $: cheerio.Root; let $: cheerio.Root;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`getRelatedMAL_${hashStringMd5(`${mal_id}`)}`, `getRelatedMAL_${hashStringMd5(`${mal_id}`)}`,
); );
@ -324,12 +341,13 @@ export const getRelatedAnimesMAL = async (mal_id: number) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
$ = await requestGot(`https://myanimelist.net/anime/${mal_id}`, { $ = await requestGot(`https://myanimelist.net/anime/${mal_id}`, {
parse: false, parse: false,
scrapy: true, scrapy: true,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -365,6 +383,7 @@ export const getRelatedAnimesMAL = async (mal_id: number) => {
} }
if (relatedAnimes.length > 0) { if (relatedAnimes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -378,6 +397,7 @@ export const getRelatedAnimesMAL = async (mal_id: number) => {
`getRelatedMAL_${hashStringMd5(`${mal_id}`)}`, `getRelatedMAL_${hashStringMd5(`${mal_id}`)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return relatedAnimes; return relatedAnimes;
} }
@ -394,6 +414,7 @@ export const animeFlvInfo = async (id: string | undefined) => {
let episodes: any[] = []; let episodes: any[] = [];
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`animeflvInfo_${hashStringMd5(id!)}`, `animeflvInfo_${hashStringMd5(id!)}`,
); );
@ -402,12 +423,13 @@ export const animeFlvInfo = async (id: string | undefined) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
$ = await requestGot(`${urls.BASE_ANIMEFLV}/anime/${id}`, { $ = await requestGot(`${urls.BASE_ANIMEFLV}/anime/${id}`, {
scrapy: true, scrapy: true,
parse: false, parse: false,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -442,6 +464,7 @@ export const animeFlvInfo = async (id: string | undefined) => {
} }
if (episodes.length > 0) { if (episodes.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -455,6 +478,7 @@ export const animeFlvInfo = async (id: string | undefined) => {
`animeflvInfo_${hashStringMd5(id!)}`, `animeflvInfo_${hashStringMd5(id!)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return episodes; return episodes;
} else { } else {
@ -470,6 +494,7 @@ export const jkanimeInfo = async (id: string | undefined) => {
let countEpisodes: string[] = []; let countEpisodes: string[] = [];
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`jkanimeInfo_${hashStringMd5(id!)}`, `jkanimeInfo_${hashStringMd5(id!)}`,
); );
@ -478,12 +503,13 @@ export const jkanimeInfo = async (id: string | undefined) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
$ = await requestGot(`${urls.BASE_JKANIME}${id}`, { $ = await requestGot(`${urls.BASE_JKANIME}${id}`, {
scrapy: true, scrapy: true,
parse: false, parse: false,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -510,6 +536,7 @@ export const jkanimeInfo = async (id: string | undefined) => {
} }
if (episodesList.length > 0) { if (episodesList.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -523,6 +550,7 @@ export const jkanimeInfo = async (id: string | undefined) => {
`jkanimeInfo_${hashStringMd5(id!)}`, `jkanimeInfo_${hashStringMd5(id!)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return episodesList; return episodesList;
} else { } else {
@ -542,20 +570,22 @@ export const monoschinosInfo = async (
/* Extra info of the anime */ /* Extra info of the anime */
extraInfo = await animeExtraInfo(mal_id); extraInfo = await animeExtraInfo(mal_id);
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`monoschinosInfo_${hashStringMd5(id!)}`, `monoschinosInfo_${hashStringMd5(id!)}`,
); );
if (resultQueryRedis) { if (resultQueryRedis) {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
console.log(extraInfo);
return resultRedis; return resultRedis;
} else { }
}
$ = await requestGot(`${urls.BASE_MONOSCHINOS}anime/${id}`, { $ = await requestGot(`${urls.BASE_MONOSCHINOS}anime/${id}`, {
scrapy: true, scrapy: true,
parse: false, parse: false,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -607,7 +637,7 @@ export const monoschinosInfo = async (
yyyy = broadCastDate.getFullYear(); yyyy = broadCastDate.getFullYear();
episodeList.push({ episodeList.push({
nextEpisodeDate: `${yyyy}/${mm}/${dd}/`, nextEpisodeDate: `${yyyy}/${mm}/${dd}`,
}); });
} }
} }
@ -633,6 +663,7 @@ export const monoschinosInfo = async (
}); });
if (episodeList.length > 0) { if (episodeList.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -646,6 +677,7 @@ export const monoschinosInfo = async (
`monoschinosInfo_${hashStringMd5(id!)}`, `monoschinosInfo_${hashStringMd5(id!)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return episodeList; return episodeList;
} else { } else {
@ -658,6 +690,7 @@ export const videoServersMonosChinos = async (id: string) => {
let videoServers: any[] = []; let videoServers: any[] = [];
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`videoServersMonosChinos_${hashStringMd5(id)}`, `videoServersMonosChinos_${hashStringMd5(id)}`,
); );
@ -666,12 +699,13 @@ export const videoServersMonosChinos = async (id: string) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
$ = await requestGot(`${urls.BASE_MONOSCHINOS}${id}`, { $ = await requestGot(`${urls.BASE_MONOSCHINOS}${id}`, {
scrapy: true, scrapy: true,
parse: false, parse: false,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -715,6 +749,7 @@ export const videoServersMonosChinos = async (id: string) => {
}); });
if (videoServers.length > 0) { if (videoServers.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -728,6 +763,7 @@ export const videoServersMonosChinos = async (id: string) => {
`videoServersMonosChinos_${hashStringMd5(id)}`, `videoServersMonosChinos_${hashStringMd5(id)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return videoServers; return videoServers;
} else { } else {
@ -741,6 +777,7 @@ export const videoServersJK = async (id: string) => {
let script: string | null = ''; let script: string | null = '';
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`videoServersJK_${hashStringMd5(id)}`, `videoServersJK_${hashStringMd5(id)}`,
); );
@ -749,12 +786,13 @@ export const videoServersJK = async (id: string) => {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else { }
}
$ = await requestGot(`${urls.BASE_JKANIME}${id}`, { $ = await requestGot(`${urls.BASE_JKANIME}${id}`, {
scrapy: true, scrapy: true,
parse: false, parse: false,
}); });
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -807,6 +845,7 @@ export const videoServersJK = async (id: string) => {
serverList = serverList.filter(x => x.id !== 'xtreme s' && x.id !== 'desuka'); serverList = serverList.filter(x => x.id !== 'xtreme s' && x.id !== 'desuka');
if (serverList.length > 0) { if (serverList.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -820,6 +859,7 @@ export const videoServersJK = async (id: string) => {
`videoServersJK_${hashStringMd5(id!)}`, `videoServersJK_${hashStringMd5(id!)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return serverList; return serverList;
} else { } else {
@ -831,6 +871,7 @@ async function desuServerUrl(url: string) {
let $: cheerio.Root; let $: cheerio.Root;
try { try {
if (redisClient.connected) {
const resultQueryRedis: any = await redisClient.get( const resultQueryRedis: any = await redisClient.get(
`desuServerUrl_${hashStringMd5(url)}`, `desuServerUrl_${hashStringMd5(url)}`,
); );
@ -839,9 +880,10 @@ async function desuServerUrl(url: string) {
const resultRedis: any = JSON.parse(resultQueryRedis); const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis; return resultRedis;
} else {
$ = await requestGot(url, { scrapy: true, parse: false });
} }
}
$ = await requestGot(url, { scrapy: true, parse: false });
} catch (err) { } catch (err) {
return err; return err;
} }
@ -864,6 +906,7 @@ async function desuServerUrl(url: string) {
.split("'")[1]; .split("'")[1];
if (result.length > 0) { if (result.length > 0) {
if (redisClient.connected) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set( redisClient.set(
@ -877,6 +920,7 @@ async function desuServerUrl(url: string) {
`desuServerUrl_${hashStringMd5(url)}`, `desuServerUrl_${hashStringMd5(url)}`,
parseInt(`${+new Date() / 1000}`, 10) + 7200, parseInt(`${+new Date() / 1000}`, 10) + 7200,
); );
}
return result; return result;
} else { } else {

Loading…
Cancel
Save