Merge pull request #19 from aruppi/feature/improving

Feature/improving fixing some issue with the related animes, not getting some animes
pull/25/head^2
Jesús María 5 years ago committed by GitHub
commit cf5b050917
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -17,7 +17,8 @@ const {
structureThemes,
videoServersJK,
getThemes,
getRelatedAnimes
getRelatedAnimesFLV,
getRelatedAnimesMAL
} = require('../utils/index');
const ThemeParser = require('../utils/animetheme');
@ -224,18 +225,34 @@ const getMoreInfo = async (title) =>{
let data = JSON.parse(JSON.stringify(require('../assets/directory.json')));
let result = data.filter(anime => fuzzball.ratio(anime.title, title) > 90)[0];
return {
title: result.title || null,
poster: result.poster || null,
synopsis: result.description || null,
status: result.state || null,
type: result.type || null,
rating: result.score || null,
genres: result.genres || null,
moreInfo: await animeExtraInfo(result.mal_id).then(info => info || null),
promo: await getAnimeVideoPromo(result.mal_id).then(promo => promo || null),
characters: await getAnimeCharacters(result.mal_id).then(characters => characters || null),
related: await getRelatedAnimes(result.id)
if (!result.jkanime) {
return {
title: result.title || null,
poster: result.poster || null,
synopsis: result.description || null,
status: result.state || null,
type: result.type || null,
rating: result.score || null,
genres: result.genres || null,
moreInfo: await animeExtraInfo(result.mal_id).then(info => info || null),
promo: await getAnimeVideoPromo(result.mal_id).then(promo => promo || null),
characters: await getAnimeCharacters(result.mal_id).then(characters => characters || null),
related: await getRelatedAnimesFLV(result.id)
};
}else {
return {
title: result.title || null,
poster: result.poster || null,
synopsis: result.description || null,
status: result.state || null,
type: result.type || null,
rating: result.score || null,
genres: result.genres || null,
moreInfo: await animeExtraInfo(result.mal_id).then(info => info || null),
promo: await getAnimeVideoPromo(result.mal_id).then(promo => promo || null),
characters: await getAnimeCharacters(result.mal_id).then(characters => characters || null),
related: await getRelatedAnimesMAL(result.mal_id)
};
}
} catch (e) {
console.log(e);
@ -245,7 +262,7 @@ const getMoreInfo = async (title) =>{
const getEpisodes = async (title) =>{
try {
let data = JSON.parse(JSON.stringify(require('../assets/directory.json')));
const result = data.filter(x => x.title === title || x.mal_title === title)[0];
const result = data.filter(x => x.title === title)[0];
if (!result.jkanime) {
return await animeflvInfo(result.id).then(episodes => episodes || null);
@ -536,6 +553,5 @@ module.exports = {
getPlatforms,
getSectionYoutubeVideos,
getProfilePlatform,
getRelatedAnimes,
getRandomAnime
};

@ -40879,7 +40879,7 @@
{
"id": "rezero-kara-hajimeru-isekai-seikatsu",
"title": "Re:Zero kara Hajimeru Isekai Seikatsu",
"mal_id": 36286,
"mal_id": 31240,
"poster": "https://aruppi.jeluchu.xyz/res/directory/2385.jpg",
"type": "Anime",
"genres": [

@ -136,22 +136,36 @@ const jkanimeInfo = async (id) => {
};
function getPosterAndType(id) {
function getPosterAndType(id, mal_id) {
let data = JSON.parse(JSON.stringify(require('../assets/directory.json')));
for (let anime of data) {
if (anime.id === id) {
return [
anime.poster,
anime.type
];
if (id) {
for (let anime of data) {
if (anime.id === id) {
return [
anime.poster,
anime.type
];
}
}
}
if (mal_id) {
for (let anime of data) {
if (anime.mal_id === parseInt(mal_id)) {
return [
anime.poster,
anime.type,
anime.id
];
}
}
}
return "";
};
}
async function getRelatedAnimes(id) {
async function getRelatedAnimesFLV(id) {
const $ = await homgot(`${BASE_ANIMEFLV}/anime/${id}`, { scrapy: true });
let listRelated = {};
let relatedAnimes = [];
@ -162,7 +176,7 @@ async function getRelatedAnimes(id) {
});
for (related in listRelated) {
let posterUrl = getPosterAndType(listRelated[related].split('/')[2]);
let posterUrl = getPosterAndType(listRelated[related].split('/')[2], false);
relatedAnimes.push(
{
@ -178,7 +192,41 @@ async function getRelatedAnimes(id) {
}else {
return [];
}
};
}
async function getRelatedAnimesMAL(mal_id) {
const $ = await homgot(`https://myanimelist.net/anime/${mal_id}`, { scrapy: true });
let listRelated = {};
let relatedAnimes = [];
if ($('table.anime_detail_related_anime').length > 0) {
$('table.anime_detail_related_anime').find('tbody tr').each((index, element) => {
if ($(element).find('td').eq(0) !== 'Adaptation:') {
listRelated[$(element).find('td').eq(1).text()] = $(element).find('td').children('a').attr('href');
}
});
for (related in listRelated) {
let posterUrl = getPosterAndType(false, listRelated[related].split('/')[2]);
if (posterUrl !== "") {
relatedAnimes.push(
{
id: posterUrl[2],
title: related,
type: posterUrl[1],
poster: posterUrl[0]
}
);
}
}
return relatedAnimes;
}else {
return [];
}
}
const animeflvGenres = async (id) => {
let $ = await homgot(`${BASE_ANIMEFLV}/${id}`, { scrapy: true });
@ -286,7 +334,7 @@ const getAnimeVideoPromo = async(mal_id) =>{
};
const animeExtraInfo = async (mal_id) => {
const data = await homgot(`${BASE_JIKAN}anime/${mal_id}`, {parse: true});
const data = await homgot(`${BASE_JIKAN}anime/${mal_id}`, { parse: true });
try {
@ -491,7 +539,8 @@ module.exports = {
animeflvInfo,
getAnimeCharacters,
getAnimeVideoPromo,
getRelatedAnimes,
getRelatedAnimesFLV,
getRelatedAnimesMAL,
animeExtraInfo,
imageUrlToBase64,
searchAnime,

Loading…
Cancel
Save