Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
yoannchb-pro authored Mar 25, 2021
1 parent 3846e1d commit 9171b99
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 112 deletions.
59 changes: 25 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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");
Expand All @@ -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));
```
92 changes: 33 additions & 59 deletions anime-vostfr.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,84 +24,58 @@ 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;
}

/**
* Permet de retourner la bannière, la synopsy, le trailer d'un anime et les episodes avec leurs informations
* @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
};
}


Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
31 changes: 14 additions & 17 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand All @@ -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);});
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));

0 comments on commit 9171b99

Please sign in to comment.