-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
66 lines (57 loc) · 1.48 KB
/
Copy pathserver.js
File metadata and controls
66 lines (57 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var express = require('express');
var app = express();
var subsreader = require('./app/subsreader');
var sublist = subsreader.getSubs();
var subshit = require('./app/subshit');
// Needed to deliver static files (css, img, etc)
app.use(express.static('public'));
// Sets the template engine. We use jade
app.set('views', __dirname + '/app/tpl');
app.set('view engine', 'jade');
// Routing
// Home
app.get('/', function (req, res) {
res.render('home', {
subs: sublist
});
res.end();
});
// Single Movie by id (only digits)
app.get(/^\/\d+$/, function (req, res) {
var subtitleID = Number(req.url.slice(1));
// Returns the best rated subtitle string for the requested movie by imdbid
subshit.getSubtitle(subtitleID, function (data) {
if(data) {
res.render('single', {
sub: data,
subJSON: transformJSONObject(data)
});
} else {
res.send(false);
}
res.end();
});
});
function transformJSONObject(data) {
var newObj = JSON.parse(JSON.stringify(data));
for (var key in data) {
if (typeof data[key] === 'function') {
newObj[key] = data[key].toString();
}
}
return newObj;
}
// Single Movie by Name (every character allowed)
app.get(/./, function (req, res) {
res.send(false);
res.end();
});
// Multiple Movies
app.get('/multi', function (req, res) {
res.send('Multi');
});
var server = app.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function () {
var host = server.address().address;
var port = server.address().port;
console.log(host, port);
});