From df920647816c82deef7e6986e85915f457e8ad9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9luchu?= Date: Sat, 30 May 2020 15:35:40 +0200 Subject: [PATCH] Added Movies, Ovas, Specials and Tv --- package-lock.json | 41 --------------- package.json | 1 - src/api/api.js | 107 +++++++++++++++++++++++++++++++++++++++- src/api/index.js | 6 ++- src/api/routes/index.js | 64 ++++++++++++++++++++++++ 5 files changed, 175 insertions(+), 44 deletions(-) diff --git a/package-lock.json b/package-lock.json index a67ece3..3936579 100644 --- a/package-lock.json +++ b/package-lock.json @@ -582,11 +582,6 @@ "har-schema": "^2.0.0" } }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, "helmet": { "version": "3.22.0", "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.22.0.tgz", @@ -909,14 +904,6 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" }, - "node-html-parser": { - "version": "1.2.18", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.2.18.tgz", - "integrity": "sha512-DypklUSTuY9JDfYWz/NZYZA8mvgKmjRmHZe7at0H6O4KoXcs8QSpnH5mFk888gLsqXXRMVNmJGk/FdqaO9T1UQ==", - "requires": { - "he": "1.1.1" - } - }, "npm": { "version": "6.14.5", "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.5.tgz", @@ -4185,15 +4172,6 @@ "lodash": "^4.17.15" } }, - "rss-parser": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.8.0.tgz", - "integrity": "sha512-EvjM0r3IymXnk+SCUawLhdH36D2WQCwpEfIyvu4hpPswYuMSk/jlCLOcg24OvXwVdcJcEocAlTZVjGNjOOSJXg==", - "requires": { - "entities": "^1.1.1", - "xml2js": "^0.4.19" - } - }, "rss-to-json": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/rss-to-json/-/rss-to-json-1.1.1.tgz", @@ -4213,11 +4191,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -4409,15 +4382,6 @@ "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz", "integrity": "sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==" }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, "xml2json": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/xml2json/-/xml2json-0.12.0.tgz", @@ -4427,11 +4391,6 @@ "joi": "^13.1.2", "node-expat": "^2.3.18" } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" } } } diff --git a/package.json b/package.json index d8a29e2..4679cc1 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ "node-fetch": "^2.6.0", "npm": "^6.14.5", "request": "^2.88.0", - "rss-parser": "^3.8.0", "rss-to-json": "^1.1.1" } } diff --git a/src/api/api.js b/src/api/api.js index 2314714..b45ff41 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -182,6 +182,107 @@ const getLastEpisodes = async () =>{ }; +const getMovies = async (type, page) =>{ + + const data = await cloudscraper.get(`${BASE_ANIMEFLV_JELU}Movies/${type}/${page}`); + let body = JSON.parse(data).movies; + const promises = [] + + body.map(doc =>{ + + promises.push({ + id: doc.id, + title: doc.title, + banner: doc.banner, + image: doc.poster, + synopsis: doc.synopsis, + status: doc.debut, + rate: doc.rating, + genres: doc.genres.map(x => x), + episodes: doc.episodes.map(x => x) + }); + }); + + return Promise.all(promises); + +}; + +const getOvas = async (type, page) =>{ + + const data = await cloudscraper.get(`${BASE_ANIMEFLV_JELU}Ova/${type}/${page}`); + let body = JSON.parse(data).ova; + const promises = [] + + body.map(doc =>{ + + promises.push({ + id: doc.id, + title: doc.title, + banner: doc.banner, + image: doc.poster, + synopsis: doc.synopsis, + status: doc.debut, + rate: doc.rating, + genres: doc.genres.map(x => x), + episodes: doc.episodes.map(x => x) + }); + }); + + return Promise.all(promises); + +}; + + +const getSpecials = async (type, page) =>{ + + const data = await cloudscraper.get(`${BASE_ANIMEFLV_JELU}Special/${type}/${page}`); + let body = JSON.parse(data).special; + const promises = [] + + body.map(doc =>{ + + promises.push({ + id: doc.id, + title: doc.title, + banner: doc.banner, + image: doc.poster, + synopsis: doc.synopsis, + status: doc.debut, + rate: doc.rating, + genres: doc.genres.map(x => x), + episodes: doc.episodes.map(x => x) + }); + }); + + return Promise.all(promises); + +}; + +const getTv = async (type, page) =>{ + + const data = await cloudscraper.get(`${BASE_ANIMEFLV_JELU}Tv/${type}/${page}`); + let body = JSON.parse(data).tv; + const promises = [] + + body.map(doc =>{ + + promises.push({ + id: doc.id, + title: doc.title, + banner: doc.banner, + image: doc.poster, + synopsis: doc.synopsis, + status: doc.debut, + rate: doc.rating, + genres: doc.genres.map(x => x), + episodes: doc.episodes.map(x => x) + }); + }); + + return Promise.all(promises); + +}; + module.exports = { schedule, top, @@ -189,5 +290,9 @@ module.exports = { getAnitakume, getNews, season, - getLastEpisodes + getLastEpisodes, + getMovies, + getOvas, + getSpecials, + getTv }; diff --git a/src/api/index.js b/src/api/index.js index 3feb678..126e4ce 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -17,7 +17,11 @@ router.get('/', (req, res) => { 'GetAnitakume': '/api/v2/getAnitakume', 'GetNews': '/api/v2/getNews', 'Season': '/api/v2/season/:year/:type', - 'GetLastEpisodes': '/api/v2/getLastEpisodes' + 'GetLastEpisodes': '/api/v2/getLastEpisodes', + 'GetMovies': '/api/v2/getMovies', + 'GetOvas': '/api/v2/getOvas', + 'GetSpecials': '/api/v2/getSpecials', + 'GetTv': '/api/v2/getTv' } ] }); diff --git a/src/api/routes/index.js b/src/api/routes/index.js index b8d93fe..ff55177 100644 --- a/src/api/routes/index.js +++ b/src/api/routes/index.js @@ -102,4 +102,68 @@ router.get('/getLastEpisodes' , (req, res) =>{ }); +router.get('/getMovies/:type/:page' , (req, res) =>{ + + let type = req.params.type; + let page = req.params.page; + + api.getMovies(type, page) + .then(movies =>{ + res.status(200).json({ + movies + }); + }).catch((err) =>{ + console.error(err); + }); + +}); + +router.get('/getOvas/:type/:page' , (req, res) =>{ + + let type = req.params.type; + let page = req.params.page; + + api.getOvas(type, page) + .then(ovas =>{ + res.status(200).json({ + ovas + }); + }).catch((err) =>{ + console.error(err); + }); + +}); + +router.get('/getSpecials/:type/:page' , (req, res) =>{ + + let type = req.params.type; + let page = req.params.page; + + api.getSpecials(type, page) + .then(specials =>{ + res.status(200).json({ + specials + }); + }).catch((err) =>{ + console.error(err); + }); + +}); + +router.get('/getTv/:type/:page' , (req, res) =>{ + + let type = req.params.type; + let page = req.params.page; + + api.getSpecials(type, page) + .then(tv =>{ + res.status(200).json({ + tv + }); + }).catch((err) =>{ + console.error(err); + }); + +}); + module.exports = router;