🦾 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);
break;
case 'monoschinos':
episodes = await monoschinosInfo(searchAnime?.id);
episodes = await monoschinosInfo(searchAnime?.id, searchAnime?.mal_id);
break;
default:
episodes = undefined;

@ -280,17 +280,19 @@ export default class DirectoryController {
$or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }],
});
const extraInfo: any = await animeExtraInfo(resultQuery!.mal_id);
switch (resultQuery?.source) {
case 'animeflv':
resultAnime = {
title: resultQuery?.title,
poster: resultQuery?.poster,
synopsis: resultQuery?.description,
status: resultQuery?.state,
status: !extraInfo.aired.to ? 'En emisión' : 'Finalizado',
type: resultQuery?.type,
rating: resultQuery?.score,
genres: resultQuery?.genres,
moreInfo: [await animeExtraInfo(resultQuery!.mal_id)],
moreInfo: [extraInfo],
promo: await getAnimeVideoPromo(resultQuery!.mal_id),
characters: await getAnimeCharacters(resultQuery!.mal_id),
related: await getRelatedAnimesFLV(resultQuery!.id),
@ -301,11 +303,11 @@ export default class DirectoryController {
title: resultQuery?.title,
poster: resultQuery?.poster,
synopsis: resultQuery?.description,
status: resultQuery?.state,
status: !extraInfo.aired.to ? 'En emisión' : 'Finalizado',
type: resultQuery?.type,
rating: resultQuery?.score,
genres: resultQuery?.genres,
moreInfo: [await animeExtraInfo(resultQuery!.mal_id)],
moreInfo: [extraInfo],
promo: await getAnimeVideoPromo(resultQuery!.mal_id),
characters: await getAnimeCharacters(resultQuery!.mal_id),
related: await getRelatedAnimesMAL(resultQuery!.mal_id),
@ -316,11 +318,11 @@ export default class DirectoryController {
title: resultQuery?.title,
poster: resultQuery?.poster,
synopsis: resultQuery?.description,
status: resultQuery?.state,
status: !extraInfo.aired.to ? 'En emisión' : 'Finalizado',
type: resultQuery?.type,
rating: resultQuery?.score,
genres: resultQuery?.genres,
moreInfo: [await animeExtraInfo(resultQuery!.mal_id)],
moreInfo: [extraInfo],
promo: await getAnimeVideoPromo(resultQuery!.mal_id),
characters: await getAnimeCharacters(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 episodeList: any[] = [];
let extraInfo: any;
try {
/* Extra info of the anime */
extraInfo = await animeExtraInfo(mal_id);
const resultQueryRedis: any = await redisClient.get(
`monoschinosInfo_${hashStringMd5(id!)}`,
);
if (resultQueryRedis) {
const resultRedis: any = JSON.parse(resultQueryRedis);
console.log(extraInfo);
return resultRedis;
} else {
$ = await requestGot(`${urls.BASE_MONOSCHINOS}anime/${id}`, {
@ -553,6 +560,40 @@ export const monoschinosInfo = async (id: string | undefined) => {
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) => {
let episode: number;

Loading…
Cancel
Save