diff options
Diffstat (limited to 'server/controllers/static.ts')
-rw-r--r-- | server/controllers/static.ts | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/server/controllers/static.ts b/server/controllers/static.ts index a4bb3a4d9..271b788f6 100644 --- a/server/controllers/static.ts +++ b/server/controllers/static.ts | |||
@@ -1,15 +1,15 @@ | |||
1 | import * as cors from 'cors' | 1 | import * as cors from 'cors' |
2 | import * as express from 'express' | 2 | import * as express from 'express' |
3 | import { | 3 | import { |
4 | CONSTRAINTS_FIELDS, | ||
5 | DEFAULT_THEME_NAME, | ||
4 | HLS_STREAMING_PLAYLIST_DIRECTORY, | 6 | HLS_STREAMING_PLAYLIST_DIRECTORY, |
5 | PEERTUBE_VERSION, | 7 | PEERTUBE_VERSION, |
6 | ROUTE_CACHE_LIFETIME, | 8 | ROUTE_CACHE_LIFETIME, |
7 | STATIC_DOWNLOAD_PATHS, | 9 | STATIC_DOWNLOAD_PATHS, |
8 | STATIC_MAX_AGE, | 10 | STATIC_MAX_AGE, |
9 | STATIC_PATHS, | 11 | STATIC_PATHS, |
10 | WEBSERVER, | 12 | WEBSERVER |
11 | CONSTRAINTS_FIELDS, | ||
12 | DEFAULT_THEME_NAME | ||
13 | } from '../initializers/constants' | 13 | } from '../initializers/constants' |
14 | import { cacheRoute } from '../middlewares/cache' | 14 | import { cacheRoute } from '../middlewares/cache' |
15 | import { asyncMiddleware, videosDownloadValidator } from '../middlewares' | 15 | import { asyncMiddleware, videosDownloadValidator } from '../middlewares' |
@@ -19,8 +19,7 @@ import { VideoCommentModel } from '../models/video/video-comment' | |||
19 | import { HttpNodeinfoDiasporaSoftwareNsSchema20 } from '../../shared/models/nodeinfo' | 19 | import { HttpNodeinfoDiasporaSoftwareNsSchema20 } from '../../shared/models/nodeinfo' |
20 | import { join } from 'path' | 20 | import { join } from 'path' |
21 | import { root } from '../helpers/core-utils' | 21 | import { root } from '../helpers/core-utils' |
22 | import { CONFIG } from '../initializers/config' | 22 | import { CONFIG, isEmailEnabled } from '../initializers/config' |
23 | import { Emailer } from '../lib/emailer' | ||
24 | import { getPreview, getVideoCaption } from './lazy-static' | 23 | import { getPreview, getVideoCaption } from './lazy-static' |
25 | import { VideoStreamingPlaylistType } from '@shared/models/videos/video-streaming-playlist.type' | 24 | import { VideoStreamingPlaylistType } from '@shared/models/videos/video-streaming-playlist.type' |
26 | import { MVideoFile, MVideoFullLight } from '@server/typings/models' | 25 | import { MVideoFile, MVideoFullLight } from '@server/typings/models' |
@@ -45,12 +44,12 @@ staticRouter.use( | |||
45 | staticRouter.use( | 44 | staticRouter.use( |
46 | STATIC_DOWNLOAD_PATHS.TORRENTS + ':id-:resolution([0-9]+).torrent', | 45 | STATIC_DOWNLOAD_PATHS.TORRENTS + ':id-:resolution([0-9]+).torrent', |
47 | asyncMiddleware(videosDownloadValidator), | 46 | asyncMiddleware(videosDownloadValidator), |
48 | asyncMiddleware(downloadTorrent) | 47 | downloadTorrent |
49 | ) | 48 | ) |
50 | staticRouter.use( | 49 | staticRouter.use( |
51 | STATIC_DOWNLOAD_PATHS.TORRENTS + ':id-:resolution([0-9]+)-hls.torrent', | 50 | STATIC_DOWNLOAD_PATHS.TORRENTS + ':id-:resolution([0-9]+)-hls.torrent', |
52 | asyncMiddleware(videosDownloadValidator), | 51 | asyncMiddleware(videosDownloadValidator), |
53 | asyncMiddleware(downloadHLSVideoFileTorrent) | 52 | downloadHLSVideoFileTorrent |
54 | ) | 53 | ) |
55 | 54 | ||
56 | // Videos path for webseeding | 55 | // Videos path for webseeding |
@@ -68,13 +67,13 @@ staticRouter.use( | |||
68 | staticRouter.use( | 67 | staticRouter.use( |
69 | STATIC_DOWNLOAD_PATHS.VIDEOS + ':id-:resolution([0-9]+).:extension', | 68 | STATIC_DOWNLOAD_PATHS.VIDEOS + ':id-:resolution([0-9]+).:extension', |
70 | asyncMiddleware(videosDownloadValidator), | 69 | asyncMiddleware(videosDownloadValidator), |
71 | asyncMiddleware(downloadVideoFile) | 70 | downloadVideoFile |
72 | ) | 71 | ) |
73 | 72 | ||
74 | staticRouter.use( | 73 | staticRouter.use( |
75 | STATIC_DOWNLOAD_PATHS.HLS_VIDEOS + ':id-:resolution([0-9]+)-fragmented.:extension', | 74 | STATIC_DOWNLOAD_PATHS.HLS_VIDEOS + ':id-:resolution([0-9]+)-fragmented.:extension', |
76 | asyncMiddleware(videosDownloadValidator), | 75 | asyncMiddleware(videosDownloadValidator), |
77 | asyncMiddleware(downloadHLSVideoFile) | 76 | downloadHLSVideoFile |
78 | ) | 77 | ) |
79 | 78 | ||
80 | // HLS | 79 | // HLS |
@@ -235,6 +234,12 @@ async function generateNodeinfo (req: express.Request, res: express.Response) { | |||
235 | nodeName: CONFIG.INSTANCE.NAME, | 234 | nodeName: CONFIG.INSTANCE.NAME, |
236 | nodeDescription: CONFIG.INSTANCE.SHORT_DESCRIPTION, | 235 | nodeDescription: CONFIG.INSTANCE.SHORT_DESCRIPTION, |
237 | nodeConfig: { | 236 | nodeConfig: { |
237 | search: { | ||
238 | remoteUri: { | ||
239 | users: CONFIG.SEARCH.REMOTE_URI.USERS, | ||
240 | anonymous: CONFIG.SEARCH.REMOTE_URI.ANONYMOUS | ||
241 | } | ||
242 | }, | ||
238 | plugin: { | 243 | plugin: { |
239 | registered: getRegisteredPlugins() | 244 | registered: getRegisteredPlugins() |
240 | }, | 245 | }, |
@@ -243,7 +248,7 @@ async function generateNodeinfo (req: express.Request, res: express.Response) { | |||
243 | default: getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) | 248 | default: getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) |
244 | }, | 249 | }, |
245 | email: { | 250 | email: { |
246 | enabled: Emailer.isEnabled() | 251 | enabled: isEmailEnabled() |
247 | }, | 252 | }, |
248 | contactForm: { | 253 | contactForm: { |
249 | enabled: CONFIG.CONTACT_FORM.ENABLED | 254 | enabled: CONFIG.CONTACT_FORM.ENABLED |
@@ -325,7 +330,7 @@ async function generateNodeinfo (req: express.Request, res: express.Response) { | |||
325 | return res.send(json).end() | 330 | return res.send(json).end() |
326 | } | 331 | } |
327 | 332 | ||
328 | async function downloadTorrent (req: express.Request, res: express.Response) { | 333 | function downloadTorrent (req: express.Request, res: express.Response) { |
329 | const video = res.locals.videoAll | 334 | const video = res.locals.videoAll |
330 | 335 | ||
331 | const videoFile = getVideoFile(req, video.VideoFiles) | 336 | const videoFile = getVideoFile(req, video.VideoFiles) |
@@ -334,7 +339,7 @@ async function downloadTorrent (req: express.Request, res: express.Response) { | |||
334 | return res.download(getTorrentFilePath(video, videoFile), `${video.name}-${videoFile.resolution}p.torrent`) | 339 | return res.download(getTorrentFilePath(video, videoFile), `${video.name}-${videoFile.resolution}p.torrent`) |
335 | } | 340 | } |
336 | 341 | ||
337 | async function downloadHLSVideoFileTorrent (req: express.Request, res: express.Response) { | 342 | function downloadHLSVideoFileTorrent (req: express.Request, res: express.Response) { |
338 | const video = res.locals.videoAll | 343 | const video = res.locals.videoAll |
339 | 344 | ||
340 | const playlist = getHLSPlaylist(video) | 345 | const playlist = getHLSPlaylist(video) |
@@ -346,7 +351,7 @@ async function downloadHLSVideoFileTorrent (req: express.Request, res: express.R | |||
346 | return res.download(getTorrentFilePath(playlist, videoFile), `${video.name}-${videoFile.resolution}p-hls.torrent`) | 351 | return res.download(getTorrentFilePath(playlist, videoFile), `${video.name}-${videoFile.resolution}p-hls.torrent`) |
347 | } | 352 | } |
348 | 353 | ||
349 | async function downloadVideoFile (req: express.Request, res: express.Response) { | 354 | function downloadVideoFile (req: express.Request, res: express.Response) { |
350 | const video = res.locals.videoAll | 355 | const video = res.locals.videoAll |
351 | 356 | ||
352 | const videoFile = getVideoFile(req, video.VideoFiles) | 357 | const videoFile = getVideoFile(req, video.VideoFiles) |
@@ -355,7 +360,7 @@ async function downloadVideoFile (req: express.Request, res: express.Response) { | |||
355 | return res.download(getVideoFilePath(video, videoFile), `${video.name}-${videoFile.resolution}p${videoFile.extname}`) | 360 | return res.download(getVideoFilePath(video, videoFile), `${video.name}-${videoFile.resolution}p${videoFile.extname}`) |
356 | } | 361 | } |
357 | 362 | ||
358 | async function downloadHLSVideoFile (req: express.Request, res: express.Response) { | 363 | function downloadHLSVideoFile (req: express.Request, res: express.Response) { |
359 | const video = res.locals.videoAll | 364 | const video = res.locals.videoAll |
360 | const playlist = getHLSPlaylist(video) | 365 | const playlist = getHLSPlaylist(video) |
361 | if (!playlist) return res.status(404).end | 366 | if (!playlist) return res.status(404).end |