X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconstants.ts;h=3837f7062ac2b5d092771d67f525d6a60f673592;hb=f4001cf408a99049d01a356bfb20a62342de06ea;hp=67df3df80d9a3f6ba31a0d96a44f7cd54d958cf0;hpb=8244c85ad668d38f984f975ddc3c7e4e93cde050;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 67df3df80..3837f7062 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -14,7 +14,7 @@ let config: IConfig = require('config') // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 220 +const LAST_MIGRATION_VERSION = 230 // --------------------------------------------------------------------------- @@ -116,10 +116,11 @@ const CONFIG = { PASSWORD: config.get('database.password') }, REDIS: { - HOSTNAME: config.get('redis.hostname'), - PORT: config.get('redis.port'), - AUTH: config.get('redis.auth'), - DB: config.get('redis.db') + HOSTNAME: config.has('redis.hostname') ? config.get('redis.hostname') : null, + PORT: config.has('redis.port') ? config.get('redis.port') : null, + SOCKET: config.has('redis.socket') ? config.get('redis.socket') : null, + AUTH: config.has('redis.auth') ? config.get('redis.auth') : null, + DB: config.has('redis.db') ? config.get('redis.db') : null }, SMTP: { HOSTNAME: config.get('smtp.hostname'), @@ -137,6 +138,7 @@ const CONFIG = { VIDEOS_DIR: buildPath(config.get('storage.videos')), THUMBNAILS_DIR: buildPath(config.get('storage.thumbnails')), PREVIEWS_DIR: buildPath(config.get('storage.previews')), + CAPTIONS_DIR: buildPath(config.get('storage.captions')), TORRENTS_DIR: buildPath(config.get('storage.torrents')), CACHE_DIR: buildPath(config.get('storage.cache')) }, @@ -182,6 +184,9 @@ const CONFIG = { CACHE: { PREVIEWS: { get SIZE () { return config.get('cache.previews.size') } + }, + VIDEO_CAPTIONS: { + get SIZE () { return config.get('cache.captions.size') } } }, INSTANCE: { @@ -224,6 +229,14 @@ const CONSTRAINTS_FIELDS = { SUPPORT: { min: 3, max: 500 }, // Length URL: { min: 3, max: 2000 } // Length }, + VIDEO_CAPTIONS: { + CAPTION_FILE: { + EXTNAME: [ '.vtt', '.srt' ], + FILE_SIZE: { + max: 2 * 1024 * 1024 // 2MB + } + } + }, VIDEOS: { NAME: { min: 3, max: 120 }, // Length LANGUAGE: { min: 1, max: 10 }, // Length @@ -282,7 +295,9 @@ const RATES_LIMIT = { let VIDEO_VIEW_LIFETIME = 60000 * 60 // 1 hour const VIDEO_TRANSCODING_FPS = { MIN: 10, - MAX: 30 + AVERAGE: 30, + MAX: 60, + KEEP_ORIGIN_FPS_RESOLUTION_MIN: 720 // We keep the original FPS on high resolutions (720 minimum) } const VIDEO_RATE_TYPES: { [ id: string ]: VideoRateType } = { @@ -348,6 +363,11 @@ const IMAGE_MIMETYPE_EXT = { 'image/jpeg': '.jpg' } +const VIDEO_CAPTIONS_MIMETYPE_EXT = { + 'text/vtt': '.vtt', + 'application/x-subrip': '.srt' +} + // --------------------------------------------------------------------------- const SERVER_ACTOR_NAME = 'peertube' @@ -400,7 +420,8 @@ const STATIC_PATHS = { THUMBNAILS: '/static/thumbnails/', TORRENTS: '/static/torrents/', WEBSEED: '/static/webseed/', - AVATARS: '/static/avatars/' + AVATARS: '/static/avatars/', + VIDEO_CAPTIONS: '/static/video-captions/' } const STATIC_DOWNLOAD_PATHS = { TORRENTS: '/download/torrents/', @@ -431,8 +452,13 @@ const EMBED_SIZE = { // Sub folders of cache directory const CACHE = { - DIRECTORIES: { - PREVIEWS: join(CONFIG.STORAGE.CACHE_DIR, 'previews') + PREVIEWS: { + DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'previews'), + MAX_AGE: 1000 * 3600 * 3 // 3 hours + }, + VIDEO_CAPTIONS: { + DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'video-captions'), + MAX_AGE: 1000 * 3600 * 3 // 3 hours } } @@ -479,6 +505,8 @@ if (isTestInstance() === true) { VIDEO_VIEW_LIFETIME = 1000 // 1 second JOB_ATTEMPTS['email'] = 1 + + CACHE.VIDEO_CAPTIONS.MAX_AGE = 3000 } updateWebserverConfig() @@ -487,6 +515,7 @@ updateWebserverConfig() export { API_VERSION, + VIDEO_CAPTIONS_MIMETYPE_EXT, AVATARS_SIZE, ACCEPT_HEADERS, BCRYPT_SALT_SIZE,