diff --git a/src/controllers/AnimeController.ts b/src/controllers/AnimeController.ts index 92989c9..d6620f9 100644 --- a/src/controllers/AnimeController.ts +++ b/src/controllers/AnimeController.ts @@ -588,10 +588,16 @@ export default class AnimeController { return next(err); } - if (!searchAnime?.jkanime) { - episodes = await animeFlvInfo(searchAnime?.id); - } else { - episodes = await jkanimeInfo(searchAnime?.id); + switch (searchAnime?.source) { + case 'animeflv': + episodes = await animeFlvInfo(searchAnime?.id); + break; + case 'jkanime': + episodes = await jkanimeInfo(searchAnime?.id); + break; + default: + episodes = undefined; + break; } if (episodes) { @@ -675,34 +681,40 @@ export default class AnimeController { return next(err); } - if (!animeQuery[0].jkanime) { - animeResult = { - title: animeQuery[0].title || null, - poster: animeQuery[0].poster || null, - synopsis: animeQuery[0].description || null, - status: animeQuery[0].state || null, - type: animeQuery[0].type || null, - rating: animeQuery[0].score || null, - genres: animeQuery[0].genres || null, - moreInfo: [await animeExtraInfo(animeQuery[0].mal_id)], - promo: await getAnimeVideoPromo(animeQuery[0].mal_id), - characters: await getAnimeCharacters(animeQuery[0].mal_id), - related: await getRelatedAnimesFLV(animeQuery[0].id), - }; - } else { - animeResult = { - title: animeQuery[0].title || null, - poster: animeQuery[0].poster || null, - synopsis: animeQuery[0].description || null, - status: animeQuery[0].state || null, - type: animeQuery[0].type || null, - rating: animeQuery[0].score || null, - genres: animeQuery[0].genres || null, - moreInfo: [await animeExtraInfo(animeQuery[0].mal_id)], - promo: await getAnimeVideoPromo(animeQuery[0].mal_id), - characters: await getAnimeCharacters(animeQuery[0].mal_id), - related: await getRelatedAnimesMAL(animeQuery[0].mal_id), - }; + switch (animeQuery[0].source) { + case 'animeflv': + animeResult = { + title: animeQuery[0].title || null, + poster: animeQuery[0].poster || null, + synopsis: animeQuery[0].description || null, + status: animeQuery[0].state || null, + type: animeQuery[0].type || null, + rating: animeQuery[0].score || null, + genres: animeQuery[0].genres || null, + moreInfo: [await animeExtraInfo(animeQuery[0].mal_id)], + promo: await getAnimeVideoPromo(animeQuery[0].mal_id), + characters: await getAnimeCharacters(animeQuery[0].mal_id), + related: await getRelatedAnimesFLV(animeQuery[0].id), + }; + break; + case 'jkanime': + animeResult = { + title: animeQuery[0].title || null, + poster: animeQuery[0].poster || null, + synopsis: animeQuery[0].description || null, + status: animeQuery[0].state || null, + type: animeQuery[0].type || null, + rating: animeQuery[0].score || null, + genres: animeQuery[0].genres || null, + moreInfo: [await animeExtraInfo(animeQuery[0].mal_id)], + promo: await getAnimeVideoPromo(animeQuery[0].mal_id), + characters: await getAnimeCharacters(animeQuery[0].mal_id), + related: await getRelatedAnimesMAL(animeQuery[0].mal_id), + }; + break; + default: + animeResult = undefined; + break; } if (animeResult) { diff --git a/src/controllers/DirectoryController.ts b/src/controllers/DirectoryController.ts index 2008a11..496a266 100644 --- a/src/controllers/DirectoryController.ts +++ b/src/controllers/DirectoryController.ts @@ -63,7 +63,7 @@ export default class DirectoryController { genres: item.genres, state: item.state, score: item.score, - jkanime: item.jkanime, + source: item.source, description: item.description, }); } @@ -89,7 +89,7 @@ export default class DirectoryController { genres: item.genres, state: item.state, score: item.score, - jkanime: item.jkanime, + source: item.source, description: item.description, }); } @@ -280,34 +280,40 @@ export default class DirectoryController { $or: [{ title: { $eq: title } }, { title: { $eq: `${title} (TV)` } }], }); - if (!resultQuery?.jkanime) { - resultAnime = { - title: resultQuery?.title, - poster: resultQuery?.poster, - synopsis: resultQuery?.description, - status: resultQuery?.state, - type: resultQuery?.type, - rating: resultQuery?.score, - genres: resultQuery?.genres, - moreInfo: [await animeExtraInfo(resultQuery!.mal_id)], - promo: await getAnimeVideoPromo(resultQuery!.mal_id), - characters: await getAnimeCharacters(resultQuery!.mal_id), - related: await getRelatedAnimesFLV(resultQuery!.id), - }; - } else { - resultAnime = { - title: resultQuery?.title, - poster: resultQuery?.poster, - synopsis: resultQuery?.description, - status: resultQuery?.state, - type: resultQuery?.type, - rating: resultQuery?.score, - genres: resultQuery?.genres, - moreInfo: [await animeExtraInfo(resultQuery!.mal_id)], - promo: await getAnimeVideoPromo(resultQuery!.mal_id), - characters: await getAnimeCharacters(resultQuery!.mal_id), - related: await getRelatedAnimesMAL(resultQuery!.mal_id), - }; + switch (resultQuery?.source) { + case 'animeflv': + resultAnime = { + title: resultQuery?.title, + poster: resultQuery?.poster, + synopsis: resultQuery?.description, + status: resultQuery?.state, + type: resultQuery?.type, + rating: resultQuery?.score, + genres: resultQuery?.genres, + moreInfo: [await animeExtraInfo(resultQuery!.mal_id)], + promo: await getAnimeVideoPromo(resultQuery!.mal_id), + characters: await getAnimeCharacters(resultQuery!.mal_id), + related: await getRelatedAnimesFLV(resultQuery!.id), + }; + break; + case 'jkanime': + resultAnime = { + title: resultQuery?.title, + poster: resultQuery?.poster, + synopsis: resultQuery?.description, + status: resultQuery?.state, + type: resultQuery?.type, + rating: resultQuery?.score, + genres: resultQuery?.genres, + moreInfo: [await animeExtraInfo(resultQuery!.mal_id)], + promo: await getAnimeVideoPromo(resultQuery!.mal_id), + characters: await getAnimeCharacters(resultQuery!.mal_id), + related: await getRelatedAnimesMAL(resultQuery!.mal_id), + }; + break; + default: + resultAnime = undefined; + break; } } } catch (err) { diff --git a/src/database/models/anime.model.ts b/src/database/models/anime.model.ts index 3293d9d..b3ef5de 100644 --- a/src/database/models/anime.model.ts +++ b/src/database/models/anime.model.ts @@ -14,7 +14,7 @@ export interface Anime extends Document { genres: Types.Array; state: string; score: string; - jkanime: boolean; + source: string; description: string; } @@ -28,7 +28,7 @@ const AnimeSchema: Schema = new Schema({ genres: [{ type: String }], state: { type: String }, score: { type: String }, - jkanime: { type: Boolean }, + source: { type: String }, description: { type: String }, }); diff --git a/src/utils/urls.ts b/src/utils/urls.ts index 4d094fb..2322d22 100644 --- a/src/utils/urls.ts +++ b/src/utils/urls.ts @@ -1,6 +1,7 @@ export default { BASE_ARUPPI: 'https://aruppi.jeluchu.xyz/', BASE_ANIMEFLV: 'https://animeflv.net/', + BASE_MONOSCHINOS: 'https://monoschinos2.com/', BASE_JKANIME: 'https://jkanime.net/', BASE_ANIMEFLV_JELU: 'https://aruppi.jeluchu.xyz/apis/animeflv/v1/', BASE_YOUTUBE: 'https://aruppi.jeluchu.xyz/api/Youtube/?channelId=',