You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aruppi-api/src/api/routes/index.js

334 lines
6.9 KiB
JavaScript

const express = require('express');
const router = express.Router();
const api = require('../api');
const { BASE_KUDASAI, BASE_PALOMITRON, BASE_RAMENPARADOS, BASE_CRUNCHYROLL } = require('../urls');
router.get('/schedule/:day' , (req, res) =>{
let day = {current: req.params.day}
api.schedule(day)
.then(day =>{
res.status(200).json({
day
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/top/:type/:subtype/:page' , (req, res) =>{
let type = req.params.type;
let subtype = req.params.subtype;
let page = req.params.page;
api.top(type, subtype, page)
.then(top =>{
res.status(200).json({
top
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/allAnimes' , (req, res) =>{
api.getAllAnimes()
.then(animes =>{
res.status(200).json({
animes
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/anitakume' , (req, res) =>{
api.getAnitakume()
.then(podcast =>{
res.status(200).json({
podcast
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/news' , (req, res) =>{
let pagesRss = [
{ url: BASE_KUDASAI, author: 'Kudasai', content: 'content_encoded' },
{ url: BASE_PALOMITRON, author: 'Palomitron', content: 'description' },
{ url: BASE_RAMENPARADOS, author: 'Ramen para dos', content: 'content' },
{ url: BASE_CRUNCHYROLL, author: 'Crunchyroll', content: 'content_encoded' }
];
api.getNews(pagesRss)
.then(news =>{
res.status(200).json({
news
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/season/:year/:type' , (req, res) =>{
let year = req.params.year;
let type = req.params.type;
api.season(year, type)
.then(season =>{
res.status(200).json({
season
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/lastEpisodes' , (req, res) =>{
api.getLastEpisodes()
.then(episodes =>{
res.status(200).json({
episodes
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/movies/:type/:page' , (req, res) =>{
let type = {url: 'Movies', prop: 'movies'}
let subType = req.params.type;
let page = req.params.page;
api.getSpecials(type, subType, page)
.then(movies =>{
res.status(200).json({
movies
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/ovas/:type/:page' , (req, res) =>{
let type = {url: 'Ova', prop: 'ova'}
let subType = req.params.type;
let page = req.params.page;
api.getSpecials(type, subType, page)
.then(ovas =>{
res.status(200).json({
ovas
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/specials/:type/:page' , (req, res) =>{
let type = {url: 'Special', prop: 'special'}
let subType = req.params.type;
let page = req.params.page;
api.getSpecials(type, subType, page)
.then(specials =>{
res.status(200).json({
specials
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/tv/:type/:page' , (req, res) =>{
let type = {url: 'Tv', prop: 'tv'}
let subType = req.params.type;
let page = req.params.page;
api.getSpecials(type, subType, page)
.then(tv =>{
res.status(200).json({
tv
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/moreInfo/:title' , (req, res) =>{
let title = req.params.title;
api.getMoreInfo(title)
.then(info =>{
if (info.length > 0) {
res.status(200).json({
info
});
} else (
res.status(404).json({ message: 'Aruppi lost in the shell'})
)
}).catch((err) =>{
console.error(err);
});
});
router.get('/getAnimeServers/:id([^/]+/[^/]+)' , (req, res) =>{
let id = req.params.id;
api.getAnimeServers(id)
.then(servers =>{
res.status(200).json({
servers
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/search/:title' , (req, res) =>{
let title = req.params.title;
api.search(title)
.then(search =>{
res.status(200).json({
search
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/images/:query' , (req, res) =>{
let query = { title: req.params.query, count: '51', type: 'images', safesearch: '1', country: 'es_ES', uiv: '4' };
api.getImages(query)
.then(images =>{
res.status(200).json({
images
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/videos/:channelId' , (req, res) =>{
let channelId = { id: req.params.channelId, part: 'snippet,id', order: 'date', maxResults: '50', prop: 'items' };
api.getYoutubeVideos(channelId)
.then(videos =>{
res.status(200).json({
videos
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/radio' , (req, res) =>{
api.getRadioStations()
.then(stations =>{
res.status(200).json({
stations
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/themes/:title' , (req, res) =>{
let title = req.params.title;
api.getOpAndEd(title)
.then(themes =>{
res.status(200).json({
themes
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/themeSeason/:year/:season?', (req, res) =>{
let year = req.params.year;
let season = req.params.season
api.getThemesSeason(year, season)
.then(themes =>{
res.status(200).json({
themes
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/randomTheme', (req, res) =>{
api.getRandomTheme()
.then(random =>{
res.status(200).json({
random
});
}).catch((err) =>{
console.error(err);
});
});
router.get('/artists/:id?', (req, res) =>{
let id = req.params.id;
api.getArtist(id)
.then(artists =>{
res.status(200).json({
artists
});
}).catch((err) =>{
console.error(err);
});
});
module.exports = router;