diff --git a/README.md b/README.md index cea5deb..bb7117d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Anime-vostfr 1.2.1 +# Anime-vostfr 1.2.2 ## 🎉 Update -- New api +- Improvement ## 📖 Description Get any anime in vf and vostfr with their iformations like image, embed video, banner, trailer, description, synopsys, episodes ... ## NPM @@ -33,21 +33,17 @@ Get more information (trailer + banner + description + episodes) and embed link ```js var anime = api.searchAnime(data, name); /*More information*/ -await api.getMoreInformation(anime.url).then(res => { - console.log("Synopsis: ",res.synop); - console.log("Banner: ",res.banner); - console.log("Youtube embed trailer link: ",res.trailer); - console.log("Episodes: ",res.eps); +const res = await api.getMoreInformation(another[0].url).catch(err => displayError(err)); - //register episodes list for embed video - anime[0]["eps"] = res.eps; -}); +console.log("Synopsis: ",res.synop); +console.log("Banner: ",res.banner); +console.log("Youtube embed trailer link: ",res.trailer); +console.log("Episodes: ",res.eps); /*Embed video*/ //here we take the first embed video for the first video (eps[0].url) -await api.getEmbed(anime[0].eps[0].url).then( res => { - console.log("Episode 1 link iframe: ",res[0]); //display first iframe link -}); +const resInfo = await api.getEmbed(another[0].eps[0].url).catch(err => displayError(err)); +console.log("Episode 1 link iframe: ",resInfo[1]); //display first iframe link ``` Get popular anime ```js @@ -63,22 +59,20 @@ var result = api.movieAnime(data); ``` ## Example ```js -const api = require('anime-vostfr'); - +const api = require('anime-vostfr.js'); const displayInfo = function(info){console.log(`[INFO] ${info}`);} const displayError = function(err){console.log(`[ERROR] ${err}`);} displayInfo("Connexion en cours..."); -//VF +//VF same methods as vostfr api.loadAnimeVF().then(async data => { displayInfo("Connexion effectuée..."); - //same methods as vostfr console.log(data); -}); +}).catch(err => displayError(err)); displayInfo("Connexion en cours..."); //VOSTFR -api.loadAnime().then(async data => { +api.loadAnime().then(async (data) => { displayInfo("Connexion effectuée..."); let another = api.searchAnime(data, "another"); @@ -91,22 +85,19 @@ api.loadAnime().then(async data => { /*Get more information synopsis + trailer + banner + episodes*/ displayInfo("Informations en cours de traitement..."); - await api.getMoreInformation(another[0].url).then(res => { - console.log("Synopsis: ",res.synop); - console.log("Banner: ",res.banner); - console.log("Youtube embed trailer link: ",res.trailer); - console.log("Episodes: ",res.eps); - another[0]["eps"] = res.eps; - }, - err => {displayError(err);}); + const res = await api.getMoreInformation(another[0].url).catch(err => displayError(err)); + + console.log("Synopsis: ",res.synop); + console.log("Banner: ",res.banner); + console.log("Youtube embed trailer link: ",res.trailer); + console.log("Episodes: ",res.eps); + another[0]["eps"] = res.eps; /*Get embed link for video*/ displayInfo("Lien embed en cours de traitement..."); - await api.getEmbed(another[0].eps[0].url).then( res => { - console.log("Episode 1 link iframe: ",res[1]); //display first iframe link - another[0].embedOne = res[1]; - }, - err => {displayError(err);}); -}, -err => {displayError(err);}); + const resInfo = await api.getEmbed(another[0].eps[0].url).catch(err => displayError(err)); + console.log("Episode 1 link iframe: ",resInfo[1]); //display first iframe link + another[0].embedOne = resInfo[1]; + +}).catch(err => displayError(err)); ``` \ No newline at end of file diff --git a/anime-vostfr.js b/anime-vostfr.js index 60d578f..c858d2b 100644 --- a/anime-vostfr.js +++ b/anime-vostfr.js @@ -24,47 +24,31 @@ function getAnimeByTitle(elem, name){ * Permet de load les animes à partir d'un fichier json * @returns {Promise} */ -exports.loadAnime = () => { - return new Promise((resolve, reject) => { - cloudscraper("https://www.neko-sama.fr/animes-search-vostfr.json").then(function(result){ - resolve(JSON.parse(result)); - }, function(err){reject({error: true, content: err});}); - }); +exports.loadAnime = async () => { + const result = await cloudscraper("https://www.neko-sama.fr/animes-search-vostfr.json"); + return JSON.parse(result); } /** * Permet de load les animes en vf à partir d'un fichier json * @returns {Promise} */ -exports.loadAnimeVF = () => { - return new Promise((resolve, reject) => { - cloudscraper("https://neko-sama.fr/animes-search-vf.json").then(function(result){ - resolve(JSON.parse(result)); - }, function(err){reject({error: true, content: err});}); - }); +exports.loadAnimeVF = async () => { + const result = await cloudscraper("https://neko-sama.fr/animes-search-vf.json"); + return JSON.parse(result); } /** * Permet de récuperer le lien de la vidéo en embed * @param {String} url * @returns {Promise} */ -exports.getEmbed = (url) => { - return new Promise((resolve, reject) => { - cloudscraper("https://www.neko-sama.fr"+url).then(function(html){ - try{ - let video = []; - let result = html.substring(html.indexOf('else')); - result = result.substring(4,result.indexOf('}')+1); - eval(result); - resolve(video); - } catch(e) { - reject({ - error: true, - type: `Error while getting the url plz see update or verify the url` - }); - } - }, function(err){reject({error: true, content: err});}); - }); +exports.getEmbed = async (url) => { + const html = await cloudscraper("https://www.neko-sama.fr"+url); + let video = []; + let result = html.substring(html.indexOf('else')); + result = result.substring(4,result.indexOf('}')+1); + eval(result); + return video; } /** @@ -72,36 +56,26 @@ exports.getEmbed = (url) => { * @param {String} url * @returns {Object} */ -exports.getMoreInformation = (url) => { - return new Promise((resolve, reject) => { - cloudscraper("https://www.neko-sama.fr"+url).then(function(html){ - try{ - let parser = new DomParser(); - let document = parser.parseFromString(html); - let synop = document.getElementsByClassName('synopsis')[0].getElementsByTagName('p')[0].innerHTML; - let ytb = document.getElementsByTagName('iframe')[0]; - let banner = document.getElementById('head').getAttribute('style'); - banner = banner.substring(banner.indexOf('url(')); - banner = banner.substring(4,banner.indexOf(')')); - - let result = html.substring(html.indexOf('episodes')); - result = result.substring(0,result.indexOf('$(document)')); - result = eval(result); - - resolve({ - synop: synop, - banner: banner, - trailer: ytb ? ytb.getAttribute('src') : false, - eps: result - }); - } catch(e) { - reject({ - error: true, - type: `Error while getting the url plz see update or verify the url` - }); - } - }, function(err){reject({error: true, content: err});}); - }) +exports.getMoreInformation = async (url) => { + const html = await cloudscraper("https://www.neko-sama.fr"+url); + let parser = new DomParser(); + let document = parser.parseFromString(html); + let synop = document.getElementsByClassName('synopsis')[0].getElementsByTagName('p')[0].innerHTML; + let ytb = document.getElementsByTagName('iframe')[0]; + let banner = document.getElementById('head').getAttribute('style'); + banner = banner.substring(banner.indexOf('url(')); + banner = banner.substring(4,banner.indexOf(')')); + + let result = html.substring(html.indexOf('episodes')); + result = result.substring(0,result.indexOf('$(document)')); + result = eval(result); + + return{ + synop: synop, + banner: banner, + trailer: ytb ? ytb.getAttribute('src') : false, + eps: result + }; } diff --git a/package.json b/package.json index f7244ee..7a0ff8e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "anime-vostfr", - "version": "1.2.1", - "description": "Get any anime iformation like image, embed video, banner, trailer, description...", + "version": "1.2.2", + "description": "Get any anime iformation like image, embed video, banner, trailer, description... (informations from neko sama)", "main": "anime-vostfr.js", "homepage": "https://github.com/yoannchb-pro", "repository": { diff --git a/test.js b/test.js index 8b6dda9..dec6361 100644 --- a/test.js +++ b/test.js @@ -8,11 +8,11 @@ api.loadAnimeVF().then(async data => { displayInfo("Connexion effectuée..."); //same methods as vostfr console.log(data); -}); +}).catch(err => displayError(err)); displayInfo("Connexion en cours..."); //VOSTFR -api.loadAnime().then(async data => { +api.loadAnime().then(async (data) => { displayInfo("Connexion effectuée..."); let another = api.searchAnime(data, "another"); @@ -25,21 +25,18 @@ api.loadAnime().then(async data => { /*Get more information synopsis + trailer + banner + episodes*/ displayInfo("Informations en cours de traitement..."); - await api.getMoreInformation(another[0].url).then(res => { - console.log("Synopsis: ",res.synop); - console.log("Banner: ",res.banner); - console.log("Youtube embed trailer link: ",res.trailer); - console.log("Episodes: ",res.eps); - another[0]["eps"] = res.eps; - }, - err => {displayError(err);}); + const res = await api.getMoreInformation(another[0].url).catch(err => displayError(err)); + + console.log("Synopsis: ",res.synop); + console.log("Banner: ",res.banner); + console.log("Youtube embed trailer link: ",res.trailer); + console.log("Episodes: ",res.eps); + another[0]["eps"] = res.eps; /*Get embed link for video*/ displayInfo("Lien embed en cours de traitement..."); - await api.getEmbed(another[0].eps[0].url).then( res => { - console.log("Episode 1 link iframe: ",res[1]); //display first iframe link - another[0].embedOne = res[1]; - }, - err => {displayError(err);}); -}, -err => {displayError(err);}); \ No newline at end of file + const resInfo = await api.getEmbed(another[0].eps[0].url).catch(err => displayError(err)); + console.log("Episode 1 link iframe: ",resInfo[1]); //display first iframe link + another[0].embedOne = resInfo[1]; + +}).catch(err => displayError(err)); \ No newline at end of file