👻Fixing wrong property on reponse

pull/33/head
capitanwesler 4 years ago
parent aa016be0c8
commit e0b22d4edb

@ -643,7 +643,10 @@ export default class AnimeController {
if (data) { if (data) {
/* Set the key in the redis cache. */ /* Set the key in the redis cache. */
redisClient.set(`servers_${hashStringMd5(id)}`, JSON.stringify(data)); redisClient.set(
`servers_${hashStringMd5(id)}`,
JSON.stringify({ servers: data }),
);
/* After 24hrs expire the key. */ /* After 24hrs expire the key. */

@ -56,12 +56,22 @@ export const animeExtraInfo = async (mal_id: number) => {
}; };
try { try {
data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}`, { const resultQueryRedis: any = await redisClient.get(
parse: true, `extraInfo_${hashStringMd5(`${mal_id}`)}`,
scrapy: false, );
});
if (resultQueryRedis) {
const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis;
} else {
data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}`, {
parse: true,
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;
} }
@ -90,34 +100,90 @@ export const animeExtraInfo = async (mal_id: number) => {
endingThemes: data.ending_themes || null, endingThemes: data.ending_themes || null,
}; };
return formattedObject; if (formattedObject) {
/* Set the key in the redis cache. */
redisClient.set(
`extraInfo_${hashStringMd5(`${mal_id}`)}`,
JSON.stringify(formattedObject),
);
/* After 24hrs expire the key. */
redisClient.expireat(
`extraInfo_${hashStringMd5(`${mal_id}`)}`,
new Date().getTime() + 86400000,
);
return formattedObject;
} else {
return null;
}
}; };
export const getAnimeVideoPromo = async (mal_id: number) => { export const getAnimeVideoPromo = async (mal_id: number) => {
let data: any; let data: any;
try { try {
data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}/videos`, { const resultQueryRedis: any = await redisClient.get(
parse: true, `promoInfo_${hashStringMd5(`${mal_id}`)}`,
scrapy: false, );
});
if (resultQueryRedis) {
const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis;
} else {
data = await requestGot(`${urls.BASE_JIKAN}anime/${mal_id}/videos`, {
parse: true,
scrapy: false,
});
}
} catch (err) { } catch (err) {
return err; return err;
} }
const promo: Promo[] = data.promo.map((item: Promo) => item); const promo: Promo[] = data.promo.map((item: Promo) => item);
return promo; if (promo.length > 0) {
/* Set the key in the redis cache. */
redisClient.set(
`promoInfo_${hashStringMd5(`${mal_id}`)}`,
JSON.stringify(promo),
);
/* After 24hrs expire the key. */
redisClient.expireat(
`promoInfo_${hashStringMd5(`${mal_id}`)}`,
new Date().getTime() + 86400000,
);
return promo;
} else {
return null;
}
}; };
export const getAnimeCharacters = async (mal_id: number) => { export const getAnimeCharacters = async (mal_id: number) => {
let data: any; let data: any;
try { try {
data = await requestGot( const resultQueryRedis: any = await redisClient.get(
`${urls.BASE_JIKAN}anime/${mal_id}/characters_staff`, `charactersInfo_${hashStringMd5(`${mal_id}`)}`,
{ parse: true, scrapy: false },
); );
if (resultQueryRedis) {
const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis;
} else {
data = await requestGot(
`${urls.BASE_JIKAN}anime/${mal_id}/characters_staff`,
{ parse: true, scrapy: false },
);
}
} catch (err) { } catch (err) {
return err; return err;
} }
@ -131,7 +197,25 @@ export const getAnimeCharacters = async (mal_id: number) => {
}; };
}); });
return characters; if (characters.length > 0) {
/* Set the key in the redis cache. */
redisClient.set(
`charactersInfo_${hashStringMd5(`${mal_id}`)}`,
JSON.stringify(characters),
);
/* After 24hrs expire the key. */
redisClient.expireat(
`charactersInfo_${hashStringMd5(`${mal_id}`)}`,
new Date().getTime() + 86400000,
);
return characters;
} else {
return null;
}
}; };
const getPosterAndType = async ( const getPosterAndType = async (
@ -158,35 +242,63 @@ const getPosterAndType = async (
}; };
export const getRelatedAnimesFLV = async (id: string) => { export const getRelatedAnimesFLV = async (id: string) => {
const $: cheerio.Root = await requestGot( let $: cheerio.Root;
`${urls.BASE_ANIMEFLV}/anime/${id}`,
{ try {
parse: false, const resultQueryRedis: any = await redisClient.get(
scrapy: true, `relatedFLV_${hashStringMd5(id)}`,
}, );
);
if (resultQueryRedis) {
const resultRedis: any = JSON.parse(resultQueryRedis);
return resultRedis;
} else {
$ = await requestGot(`${urls.BASE_ANIMEFLV}/anime/${id}`, {
parse: false,
scrapy: true,
});
}
} catch (err) {
return err;
}
let listRelated: any = {}; let listRelated: any = {};
let relatedAnimes: RelatedAnime[] = []; let relatedAnimes: RelatedAnime[] = [];
if ($('ul.ListAnmRel').length) { $('ul.ListAnmRel li a').each((index: number, element: any) => {
$('ul.ListAnmRel li a').each((index: number, element: any) => { listRelated[$(element).text()] = $(element).attr('href');
listRelated[$(element).text()] = $(element).attr('href'); });
});
for (const related in listRelated) { for (const related in listRelated) {
let posterUrl: any = await getPosterAndType( let posterUrl: any = await getPosterAndType(
listRelated[related].split('/')[2], listRelated[related].split('/')[2],
undefined, undefined,
); );
if (posterUrl !== '') { if (posterUrl !== '') {
relatedAnimes.push({ relatedAnimes.push({
title: related, title: related,
type: posterUrl[1], type: posterUrl[1],
poster: posterUrl[0], poster: posterUrl[0],
}); });
}
} }
}
if (relatedAnimes.length > 0) {
/* Set the key in the redis cache. */
redisClient.set(
`relatedFLV_${hashStringMd5(id)}`,
JSON.stringify(relatedAnimes),
);
/* After 24hrs expire the key. */
redisClient.expireat(
`relatedFLV_${hashStringMd5(id)}`,
new Date().getTime() + 86400000,
);
return relatedAnimes; return relatedAnimes;
} else { } else {

Loading…
Cancel
Save