Moved contents of seasoned_api up to root folder
This commit is contained in:
29
src/webserver/controllers/plex/fetchRequested.js
Normal file
29
src/webserver/controllers/plex/fetchRequested.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const RequestRepository = require("../../../plex/requestRepository.js");
|
||||
|
||||
const requestRepository = new RequestRepository();
|
||||
|
||||
/**
|
||||
* Controller: Retrieves search history of a logged in user
|
||||
* @param {Request} req http request variable
|
||||
* @param {Response} res
|
||||
* @returns {Callback}
|
||||
*/
|
||||
function fetchRequestedController(req, res) {
|
||||
// const user = req.loggedInUser;
|
||||
const { status, page } = req.query;
|
||||
|
||||
requestRepository
|
||||
.fetchRequested(status, page)
|
||||
.then(requestedItems => {
|
||||
res.send({
|
||||
success: true,
|
||||
results: requestedItems,
|
||||
total_results: requestedItems.length
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(401).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = fetchRequestedController;
|
||||
12
src/webserver/controllers/plex/hookDump.js
Normal file
12
src/webserver/controllers/plex/hookDump.js
Normal file
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* @Author: KevinMidboe
|
||||
* @Date: 2017-05-03 23:26:46
|
||||
* @Last Modified by: KevinMidboe
|
||||
* @Last Modified time: 2018-02-06 20:54:22
|
||||
*/
|
||||
|
||||
function hookDumpController(req, res) {
|
||||
console.log(req);
|
||||
}
|
||||
|
||||
module.exports = hookDumpController;
|
||||
17
src/webserver/controllers/plex/plexPlaying.js
Normal file
17
src/webserver/controllers/plex/plexPlaying.js
Normal file
@@ -0,0 +1,17 @@
|
||||
const PlexRepository = require("../../../plex/plexRepository");
|
||||
const configuration = require("../../../config/configuration").getInstance();
|
||||
|
||||
const plexRepository = new PlexRepository(configuration.get("plex", "ip"));
|
||||
|
||||
function playingController(req, res) {
|
||||
plexRepository
|
||||
.nowPlaying()
|
||||
.then(movies => {
|
||||
res.send(movies);
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(500).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = playingController;
|
||||
24
src/webserver/controllers/plex/readRequest.js
Normal file
24
src/webserver/controllers/plex/readRequest.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const RequestRepository = require("../../../plex/requestRepository");
|
||||
|
||||
const requestRepository = new RequestRepository();
|
||||
|
||||
/**
|
||||
* Controller: Retrieve information for a movie
|
||||
* @param {Request} req http request variable
|
||||
* @param {Response} res
|
||||
* @returns {Callback}
|
||||
*/
|
||||
function readRequestController(req, res) {
|
||||
const mediaId = req.params.mediaId;
|
||||
const { type } = req.query;
|
||||
requestRepository
|
||||
.lookup(mediaId, type)
|
||||
.then(movies => {
|
||||
res.send(movies);
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(404).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = readRequestController;
|
||||
32
src/webserver/controllers/plex/search.js
Normal file
32
src/webserver/controllers/plex/search.js
Normal file
@@ -0,0 +1,32 @@
|
||||
const configuration = require("../../../config/configuration").getInstance();
|
||||
const Plex = require("../../../plex/plex");
|
||||
const plex = new Plex(configuration.get("plex", "ip"));
|
||||
|
||||
/**
|
||||
* Controller: Search plex for movies, shows and episodes by query
|
||||
* @param {Request} req http request variable
|
||||
* @param {Response} res
|
||||
* @returns {Callback}
|
||||
*/
|
||||
function searchPlexController(req, res) {
|
||||
const { query, type } = req.query;
|
||||
plex
|
||||
.search(query, type)
|
||||
.then(movies => {
|
||||
if (movies.length > 0) {
|
||||
res.send(movies);
|
||||
} else {
|
||||
res
|
||||
.status(404)
|
||||
.send({
|
||||
success: false,
|
||||
message: "Search query did not give any results from plex."
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(500).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = searchPlexController;
|
||||
35
src/webserver/controllers/plex/searchMedia.js
Normal file
35
src/webserver/controllers/plex/searchMedia.js
Normal file
@@ -0,0 +1,35 @@
|
||||
const PlexRepository = require("../../../plex/plexRepository");
|
||||
const configuration = require("../../../config/configuration").getInstance();
|
||||
|
||||
const plexRepository = new PlexRepository(configuration.get("plex", "ip"));
|
||||
|
||||
/**
|
||||
* Controller: Search for media and check existence
|
||||
* in plex by query and page
|
||||
* @param {Request} req http request variable
|
||||
* @param {Response} res
|
||||
* @returns {Callback}
|
||||
*/
|
||||
function searchMediaController(req, res) {
|
||||
const { query } = req.query;
|
||||
|
||||
plexRepository
|
||||
.search(query)
|
||||
.then(media => {
|
||||
if (media !== undefined || media.length > 0) {
|
||||
res.send(media);
|
||||
} else {
|
||||
res
|
||||
.status(404)
|
||||
.send({
|
||||
success: false,
|
||||
message: "Search query did not return any results."
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(500).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = searchMediaController;
|
||||
24
src/webserver/controllers/plex/searchRequest.js
Normal file
24
src/webserver/controllers/plex/searchRequest.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const SearchHistory = require("../../../searchHistory/searchHistory");
|
||||
const Cache = require("../../../tmdb/cache");
|
||||
const RequestRepository = require("../../../plex/requestRepository.js");
|
||||
|
||||
const cache = new Cache();
|
||||
const requestRepository = new RequestRepository(cache);
|
||||
const searchHistory = new SearchHistory();
|
||||
|
||||
function searchRequestController(req, res) {
|
||||
const { query, page, type } = req.query;
|
||||
const username = req.loggedInUser ? req.loggedInUser.username : null;
|
||||
|
||||
Promise.resolve()
|
||||
.then(() => searchHistory.create(username, query))
|
||||
.then(() => requestRepository.search(query, page, type))
|
||||
.then(searchResult => {
|
||||
res.send(searchResult);
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(500).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = searchRequestController;
|
||||
61
src/webserver/controllers/plex/submitRequest.js
Normal file
61
src/webserver/controllers/plex/submitRequest.js
Normal file
@@ -0,0 +1,61 @@
|
||||
const configuration = require("../../../config/configuration").getInstance();
|
||||
const RequestRepository = require("../../../request/request");
|
||||
const TMDB = require("../../../tmdb/tmdb");
|
||||
const tmdb = new TMDB(configuration.get("tmdb", "apiKey"));
|
||||
const request = new RequestRepository();
|
||||
|
||||
const tmdbMovieInfo = id => {
|
||||
return tmdb.movieInfo(id);
|
||||
};
|
||||
|
||||
const tmdbShowInfo = id => {
|
||||
return tmdb.showInfo(id);
|
||||
};
|
||||
|
||||
/**
|
||||
* Controller: POST a media id to be donwloaded
|
||||
* @param {Request} req http request variable
|
||||
* @param {Response} res
|
||||
* @returns {Callback}
|
||||
*/
|
||||
function submitRequestController(req, res) {
|
||||
// This is the id that is the param of the url
|
||||
const id = req.params.mediaId;
|
||||
const type = req.query.type ? req.query.type.toLowerCase() : undefined;
|
||||
const ip = req.headers["x-forwarded-for"] || req.connection.remoteAddress;
|
||||
const user_agent = req.headers["user-agent"];
|
||||
const username = req.loggedInUser ? req.loggedInUser.username : null;
|
||||
|
||||
let mediaFunction = undefined;
|
||||
|
||||
if (type === "movie") {
|
||||
console.log("movie");
|
||||
mediaFunction = tmdbMovieInfo;
|
||||
} else if (type === "show") {
|
||||
console.log("show");
|
||||
mediaFunction = tmdbShowInfo;
|
||||
} else {
|
||||
res.status(422).send({
|
||||
success: false,
|
||||
message: 'Incorrect type. Allowed types: "movie" or "show"'
|
||||
});
|
||||
}
|
||||
|
||||
if (mediaFunction === undefined) {
|
||||
res.status(200);
|
||||
return;
|
||||
}
|
||||
|
||||
mediaFunction(id)
|
||||
.then(tmdbMedia =>
|
||||
request.requestFromTmdb(tmdbMedia, ip, user_agent, username)
|
||||
)
|
||||
.then(() =>
|
||||
res.send({ success: true, message: "Media item successfully requested" })
|
||||
)
|
||||
.catch(err =>
|
||||
res.status(500).send({ success: false, message: err.message })
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = submitRequestController;
|
||||
26
src/webserver/controllers/plex/updateRequested.js
Normal file
26
src/webserver/controllers/plex/updateRequested.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const RequestRepository = require("../../../plex/requestRepository");
|
||||
|
||||
const requestRepository = new RequestRepository();
|
||||
|
||||
/**
|
||||
* Controller: Retrieves search history of a logged in user
|
||||
* @param {Request} req http request variable
|
||||
* @param {Response} res
|
||||
* @returns {Callback}
|
||||
*/
|
||||
function updateRequested(req, res) {
|
||||
const id = req.params.requestId;
|
||||
const type = req.body.type;
|
||||
const status = req.body.status;
|
||||
|
||||
requestRepository
|
||||
.updateRequestedById(id, type, status)
|
||||
.then(() => {
|
||||
res.send({ success: true });
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(401).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = updateRequested;
|
||||
27
src/webserver/controllers/plex/watchDirectLink.js
Normal file
27
src/webserver/controllers/plex/watchDirectLink.js
Normal file
@@ -0,0 +1,27 @@
|
||||
const configuration = require("../../../config/configuration").getInstance();
|
||||
const Plex = require("../../../plex/plex");
|
||||
const plex = new Plex(configuration.get("plex", "ip"));
|
||||
|
||||
/**
|
||||
* Controller: Search plex for movies, shows and episodes by query
|
||||
* @param {Request} req http request variable
|
||||
* @param {Response} res
|
||||
* @returns {Callback}
|
||||
*/
|
||||
|
||||
function watchDirectLink(req, res) {
|
||||
const { title, year } = req.query;
|
||||
|
||||
plex
|
||||
.getDirectLinkByTitleAndYear(title, year)
|
||||
.then(plexDirectLink => {
|
||||
if (plexDirectLink == false)
|
||||
res.status(404).send({ success: true, link: null });
|
||||
else res.status(200).send({ success: true, link: plexDirectLink });
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(500).send({ success: false, message: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = watchDirectLink;
|
||||
Reference in New Issue
Block a user