@@ -8,6 +8,8 @@ const tmdb = new TMDB(configuration.get('tmdb', 'apiKey'));
|
||||
var Promise = require('bluebird');
|
||||
var rp = require('request-promise');
|
||||
|
||||
var pythonShell = require('python-shell');
|
||||
|
||||
class RequestRepository {
|
||||
|
||||
searchRequest(query, page, type) {
|
||||
@@ -55,6 +57,30 @@ class RequestRepository {
|
||||
});
|
||||
}
|
||||
|
||||
sendRequest(identifier) {
|
||||
// TODO try a cache hit on the movie item
|
||||
|
||||
console.log(identifier)
|
||||
tmdb.lookup(identifier).then(movie => {
|
||||
console.log(movie.title)
|
||||
|
||||
var options = {
|
||||
args: [movie.title, movie.year, movie.poster]
|
||||
}
|
||||
|
||||
pythonShell.run('sendRequest.py', options, function (err, results) {
|
||||
if (err) throw err;
|
||||
// TODO Add error handling!! RequestRepository.ERROR
|
||||
// results is an array consisting of messages collected during execution
|
||||
|
||||
console.log('results: %j', results)
|
||||
})
|
||||
return true;
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = RequestRepository;
|
||||
@@ -36,7 +36,7 @@ router.get('/v1/plex/search', require('./controllers/plex/searchMedia.js'));
|
||||
router.get('/v1/plex/playing', require('./controllers/plex/plexPlaying.js'));
|
||||
router.get('/v1/plex/request', require('./controllers/plex/searchRequest.js'));
|
||||
router.get('/v1/plex/request/:mediaId', require('./controllers/plex/readRequest.js'));
|
||||
// router.post('/v1/plex/request/:mediaId', require('./controllers/plex/submitRequest.js'));
|
||||
router.post('/v1/plex/request/:mediaId', require('./controllers/plex/submitRequest.js'));
|
||||
router.get('/v1/plex/hook', require('./controllers/plex/hookDump.js'));
|
||||
|
||||
router.get('/v1/tmdb/search', require('./controllers/tmdb/searchMedia.js'));
|
||||
|
||||
24
src/webserver/controllers/plex/submitRequest.js
Normal file
24
src/webserver/controllers/plex/submitRequest.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const RequestRepository = require('src/plex/requestRepository.js');
|
||||
const requestRepository = new RequestRepository();
|
||||
|
||||
/**
|
||||
* 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;
|
||||
|
||||
requestRepository.sendRequest(id)
|
||||
.then(() => {
|
||||
res.send({ success: true, message: 'Media item sucessfully requested!' });
|
||||
})
|
||||
.catch((error) => {
|
||||
res.status(500).send({ success: false, error: error.message });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = submitRequestController;
|
||||
@@ -1,4 +1,3 @@
|
||||
const configuration = require('src/config/configuration').getInstance();
|
||||
const StrayRepository = require('src/seasoned/strayRepository');
|
||||
const strayRepository = new StrayRepository();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user