diff options
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | routes/api/v1/index.js | 12 | ||||
-rw-r--r-- | routes/index.js | 22 | ||||
-rw-r--r-- | routes/views.js | 24 | ||||
-rw-r--r-- | server.js | 56 |
5 files changed, 49 insertions, 66 deletions
diff --git a/package.json b/package.json index 8ef7d1b9b..fbfa11d4e 100644 --- a/package.json +++ b/package.json | |||
@@ -17,7 +17,6 @@ | |||
17 | "blueimp-file-upload": "^9.10.1", | 17 | "blueimp-file-upload": "^9.10.1", |
18 | "body-parser": "^1.12.4", | 18 | "body-parser": "^1.12.4", |
19 | "bootstrap": "^3.3.5", | 19 | "bootstrap": "^3.3.5", |
20 | "compression": "^1.5.0", | ||
21 | "config": "^1.14.0", | 20 | "config": "^1.14.0", |
22 | "connect-livereload": "^0.5.3", | 21 | "connect-livereload": "^0.5.3", |
23 | "debug": "^2.2.0", | 22 | "debug": "^2.2.0", |
diff --git a/routes/api/v1/index.js b/routes/api/v1/index.js index 9a4ec8438..f5504ad85 100644 --- a/routes/api/v1/index.js +++ b/routes/api/v1/index.js | |||
@@ -1,10 +1,12 @@ | |||
1 | ;(function () { | 1 | ;(function () { |
2 | 'use strict' | 2 | 'use strict' |
3 | 3 | ||
4 | var api = {} | 4 | var express = require('express') |
5 | api.videos = require('./videos') | 5 | var router = express.Router() |
6 | api.remoteVideos = require('./remoteVideos') | ||
7 | api.pods = require('./pods') | ||
8 | 6 | ||
9 | module.exports = api | 7 | router.use('/videos', require('./videos')) |
8 | router.use('/remotevideos', require('./remoteVideos')) | ||
9 | router.use('/pods', require('./pods')) | ||
10 | |||
11 | module.exports = router | ||
10 | })() | 12 | })() |
diff --git a/routes/index.js b/routes/index.js index 690913a84..ecca80721 100644 --- a/routes/index.js +++ b/routes/index.js | |||
@@ -1,24 +1,10 @@ | |||
1 | ;(function () { | 1 | ;(function () { |
2 | 'use strict' | 2 | 'use strict' |
3 | 3 | ||
4 | function getPartial (req, res) { | 4 | var routes = { |
5 | var directory = req.params.directory | 5 | api: require('./api/' + global.API_VERSION), |
6 | var name = req.params.name | 6 | views: require('./views') |
7 | |||
8 | res.render('partials/' + directory + '/' + name) | ||
9 | } | ||
10 | |||
11 | function getIndex (req, res) { | ||
12 | res.render('index') | ||
13 | } | 7 | } |
14 | 8 | ||
15 | var express = require('express') | 9 | module.exports = routes |
16 | var middleware = require('../middlewares') | ||
17 | |||
18 | var router = express.Router() | ||
19 | |||
20 | router.get('/partials/:directory/:name', middleware.cache(), getPartial) | ||
21 | router.get(/^\/(index)?$/, middleware.cache(), getIndex) | ||
22 | |||
23 | module.exports = router | ||
24 | })() | 10 | })() |
diff --git a/routes/views.js b/routes/views.js new file mode 100644 index 000000000..690913a84 --- /dev/null +++ b/routes/views.js | |||
@@ -0,0 +1,24 @@ | |||
1 | ;(function () { | ||
2 | 'use strict' | ||
3 | |||
4 | function getPartial (req, res) { | ||
5 | var directory = req.params.directory | ||
6 | var name = req.params.name | ||
7 | |||
8 | res.render('partials/' + directory + '/' + name) | ||
9 | } | ||
10 | |||
11 | function getIndex (req, res) { | ||
12 | res.render('index') | ||
13 | } | ||
14 | |||
15 | var express = require('express') | ||
16 | var middleware = require('../middlewares') | ||
17 | |||
18 | var router = express.Router() | ||
19 | |||
20 | router.get('/partials/:directory/:name', middleware.cache(), getPartial) | ||
21 | router.get(/^\/(index)?$/, middleware.cache(), getIndex) | ||
22 | |||
23 | module.exports = router | ||
24 | })() | ||
@@ -32,12 +32,10 @@ | |||
32 | var config = require('config') | 32 | var config = require('config') |
33 | var logger = require('./src/logger') | 33 | var logger = require('./src/logger') |
34 | var routes = require('./routes') | 34 | var routes = require('./routes') |
35 | var api = require('./routes/api/' + global.API_VERSION) | ||
36 | var utils = require('./src/utils') | 35 | var utils = require('./src/utils') |
37 | var videos = require('./src/videos') | 36 | var videos = require('./src/videos') |
38 | var webtorrent = require('./src/webTorrentNode') | 37 | var webtorrent = require('./src/webTorrentNode') |
39 | 38 | ||
40 | var compression | ||
41 | var port = config.get('listen.port') | 39 | var port = config.get('listen.port') |
42 | var uploads = config.get('storage.uploads') | 40 | var uploads = config.get('storage.uploads') |
43 | 41 | ||
@@ -52,51 +50,25 @@ | |||
52 | 50 | ||
53 | // ----------- Views, routes and static files ----------- | 51 | // ----------- Views, routes and static files ----------- |
54 | 52 | ||
55 | if (process.env.NODE_ENV === 'production') { | 53 | // Livereload |
56 | // logger.log('Production : static files in dist/\n') | 54 | app.use(require('connect-livereload')({ |
57 | 55 | port: 35729 | |
58 | // GZip compression | 56 | })) |
59 | compression = require('compression') | ||
60 | app.use(compression()) | ||
61 | |||
62 | // A month | ||
63 | var maxAge = 86400000 * 30 | ||
64 | |||
65 | // TODO | ||
66 | app.get(/^\/(index|(partials\/[a-z\/]+))?$/, function (req, res, next) { | ||
67 | if (req.url === '/') { | ||
68 | req.url = '/index' | ||
69 | } | ||
70 | |||
71 | req.url += '.html' | ||
72 | next() | ||
73 | }) | ||
74 | |||
75 | app.use(express.static(path.join(__dirname, '/dist/public'), { maxAge: maxAge })) | ||
76 | app.use(express.static(path.join(__dirname, '/dist/views'), { maxAge: maxAge })) | ||
77 | } else { | ||
78 | // Livereload | ||
79 | app.use(require('connect-livereload')({ | ||
80 | port: 35729 | ||
81 | })) | ||
82 | 57 | ||
83 | require('segfault-handler').registerHandler() | 58 | require('segfault-handler').registerHandler() |
84 | 59 | ||
85 | app.use(express.static(path.join(__dirname, '/public'), { maxAge: 0 })) | 60 | app.use(express.static(path.join(__dirname, '/public'), { maxAge: 0 })) |
86 | 61 | ||
87 | // Jade template from ./views directory | 62 | // Jade template from ./views directory |
88 | app.set('views', path.join(__dirname, '/views')) | 63 | app.set('views', path.join(__dirname, '/views')) |
89 | app.set('view engine', 'jade') | 64 | app.set('view engine', 'jade') |
90 | 65 | ||
91 | // Views routes | 66 | // API |
92 | app.use('/', routes) | ||
93 | } | ||
94 | |||
95 | // ----------- Routes ----------- | ||
96 | var api_route = '/api/' + global.API_VERSION | 67 | var api_route = '/api/' + global.API_VERSION |
97 | app.use(api_route + '/videos', api.videos) | 68 | app.use(api_route, routes.api) |
98 | app.use(api_route + '/remotevideos', api.remoteVideos) | 69 | |
99 | app.use(api_route + '/pods', api.pods) | 70 | // Views routes |
71 | app.use('/', routes.views) | ||
100 | 72 | ||
101 | // ----------- Tracker ----------- | 73 | // ----------- Tracker ----------- |
102 | 74 | ||