🦾 Adding the nextEpisodeDate and the anime state

pull/41/head
capitanwesler 4 years ago
parent 27955db82e
commit 533ae5da2d

@ -654,7 +654,7 @@ export default class AnimeController {
episodes = await jkanimeInfo(searchAnime?.id); episodes = await jkanimeInfo(searchAnime?.id);
break; break;
case 'monoschinos': case 'monoschinos':
episodes = await monoschinosInfo(searchAnime?.id); episodes = await monoschinosInfo(searchAnime?.id, searchAnime?.mal_id);
break; break;
default: default:
episodes = undefined; episodes = undefined;

@ -280,17 +280,19 @@ export default class DirectoryController {
$or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }], $or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }],
}); });
const extraInfo: any = await animeExtraInfo(resultQuery!.mal_id);
switch (resultQuery?.source) { switch (resultQuery?.source) {
case 'animeflv': case 'animeflv':
resultAnime = { resultAnime = {
title: resultQuery?.title, title: resultQuery?.title,
poster: resultQuery?.poster, poster: resultQuery?.poster,
synopsis: resultQuery?.description, synopsis: resultQuery?.description,
status: resultQuery?.state, status: !extraInfo.aired.to ? 'En emisión' : 'Finalizado',
type: resultQuery?.type, type: resultQuery?.type,
rating: resultQuery?.score, rating: resultQuery?.score,
genres: resultQuery?.genres, genres: resultQuery?.genres,
moreInfo: [await animeExtraInfo(resultQuery!.mal_id)], moreInfo: [extraInfo],
promo: await getAnimeVideoPromo(resultQuery!.mal_id), promo: await getAnimeVideoPromo(resultQuery!.mal_id),
characters: await getAnimeCharacters(resultQuery!.mal_id), characters: await getAnimeCharacters(resultQuery!.mal_id),
related: await getRelatedAnimesFLV(resultQuery!.id), related: await getRelatedAnimesFLV(resultQuery!.id),
@ -301,11 +303,11 @@ export default class DirectoryController {
title: resultQuery?.title, title: resultQuery?.title,
poster: resultQuery?.poster, poster: resultQuery?.poster,
synopsis: resultQuery?.description, synopsis: resultQuery?.description,
status: resultQuery?.state, status: !extraInfo.aired.to ? 'En emisión' : 'Finalizado',
type: resultQuery?.type, type: resultQuery?.type,
rating: resultQuery?.score, rating: resultQuery?.score,
genres: resultQuery?.genres, genres: resultQuery?.genres,
moreInfo: [await animeExtraInfo(resultQuery!.mal_id)], moreInfo: [extraInfo],
promo: await getAnimeVideoPromo(resultQuery!.mal_id), promo: await getAnimeVideoPromo(resultQuery!.mal_id),
characters: await getAnimeCharacters(resultQuery!.mal_id), characters: await getAnimeCharacters(resultQuery!.mal_id),
related: await getRelatedAnimesMAL(resultQuery!.mal_id), related: await getRelatedAnimesMAL(resultQuery!.mal_id),
@ -316,11 +318,11 @@ export default class DirectoryController {
title: resultQuery?.title, title: resultQuery?.title,
poster: resultQuery?.poster, poster: resultQuery?.poster,
synopsis: resultQuery?.description, synopsis: resultQuery?.description,
status: resultQuery?.state, status: !extraInfo.aired.to ? 'En emisión' : 'Finalizado',
type: resultQuery?.type, type: resultQuery?.type,
rating: resultQuery?.score, rating: resultQuery?.score,
genres: resultQuery?.genres, genres: resultQuery?.genres,
moreInfo: [await animeExtraInfo(resultQuery!.mal_id)], moreInfo: [extraInfo],
promo: await getAnimeVideoPromo(resultQuery!.mal_id), promo: await getAnimeVideoPromo(resultQuery!.mal_id),
characters: await getAnimeCharacters(resultQuery!.mal_id), characters: await getAnimeCharacters(resultQuery!.mal_id),
related: await getRelatedAnimesMAL(resultQuery!.mal_id), related: await getRelatedAnimesMAL(resultQuery!.mal_id),

@ -530,18 +530,25 @@ export const jkanimeInfo = async (id: string | undefined) => {
} }
}; };
export const monoschinosInfo = async (id: string | undefined) => { export const monoschinosInfo = async (
id: string | undefined,
mal_id: number,
) => {
let $: cheerio.Root; let $: cheerio.Root;
let episodeList: any[] = []; let episodeList: any[] = [];
let extraInfo: any;
try { try {
/* Extra info of the anime */
extraInfo = await animeExtraInfo(mal_id);
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 { } else {
$ = await requestGot(`${urls.BASE_MONOSCHINOS}anime/${id}`, { $ = await requestGot(`${urls.BASE_MONOSCHINOS}anime/${id}`, {
@ -553,6 +560,40 @@ export const monoschinosInfo = async (id: string | undefined) => {
return err; return err;
} }
let broadCastDate = new Date();
let dd: number, mm: number, yyyy: number;
const airDay: any = {
Lunes: 1,
Martes: 2,
Miércoles: 3,
Jueves: 4,
Viernes: 5,
Sábados: 6,
Domingos: 7,
'Sin emisión': 'default',
};
if (!extraInfo.aired.to) {
if (airDay.hasOwnProperty(extraInfo.broadcast)) {
for (
let i = broadCastDate.getDay();
i < airDay[extraInfo.broadcast];
i++
) {
broadCastDate.setDate(broadCastDate.getDate() + 1);
}
dd = broadCastDate.getDate();
mm = broadCastDate.getMonth();
yyyy = broadCastDate.getFullYear();
episodeList.push({
nextEpisodeDate: `${dd}/${mm + 1}/${yyyy}`,
});
}
}
$('.SerieCaps a').each((index: number, element: cheerio.Element) => { $('.SerieCaps a').each((index: number, element: cheerio.Element) => {
let episode: number; let episode: number;

Loading…
Cancel
Save