X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconstants.ts;h=50a939083c7db721ddad6ee2032b849fed4f0cb6;hb=e7dbeae8d915cdf4470ceb51c2724b04148b30b5;hp=7ab019f4446e682865b215a1b736b6be50f1cce2;hpb=4d4e5cd4dca78480ec7f40e747f424cd107376a4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 7ab019f44..50a939083 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -2,11 +2,20 @@ import * as config from 'config' import { join } from 'path' // Do not use barrels, remain constants as independent as possible -import { root, isTestInstance } from '../helpers/utils' +import { root, isTestInstance } from '../helpers/core-utils' + +import { + UserRole, + VideoRateType, + RequestEndpoint, + RequestVideoEventType, + RequestVideoQaduType, + JobState +} from '../../shared/models' // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 50 +const LAST_MIGRATION_VERSION = 65 // --------------------------------------------------------------------------- @@ -52,7 +61,8 @@ const CONFIG = { VIDEOS_DIR: join(root(), config.get('storage.videos')), THUMBNAILS_DIR: join(root(), config.get('storage.thumbnails')), PREVIEWS_DIR: join(root(), config.get('storage.previews')), - TORRENTS_DIR: join(root(), config.get('storage.torrents')) + TORRENTS_DIR: join(root(), config.get('storage.torrents')), + CACHE_DIR: join(root(), config.get('storage.cache')) }, WEBSERVER: { SCHEME: config.get('webserver.https') === true ? 'https' : 'http', @@ -66,11 +76,17 @@ const CONFIG = { EMAIL: config.get('admin.email') }, SIGNUP: { - ENABLED: config.get('signup.enabled') + ENABLED: config.get('signup.enabled'), + LIMIT: config.get('signup.limit') }, TRANSCODING: { ENABLED: config.get('transcoding.enabled'), THREADS: config.get('transcoding.threads') + }, + CACHE: { + PREVIEWS: { + SIZE: config.get('cache.previews.size') + } } } CONFIG.WEBSERVER.URL = CONFIG.WEBSERVER.SCHEME + '://' + CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT @@ -98,14 +114,15 @@ const CONSTRAINTS_FIELDS = { THUMBNAIL_DATA: { min: 0, max: 20000 }, // Bytes VIEWS: { min: 0 }, LIKES: { min: 0 }, - DISLIKES: { min: 0 } + DISLIKES: { min: 0 }, + FILE_SIZE: { min: 10, max: 1024 * 1024 * 1024 * 3 /* 3Go */ } }, VIDEO_EVENTS: { COUNT: { min: 0 } } } -const VIDEO_RATE_TYPES = { +const VIDEO_RATE_TYPES: { [ id: string ]: VideoRateType } = { LIKE: 'like', DISLIKE: 'dislike' } @@ -160,6 +177,14 @@ const VIDEO_LANGUAGES = { 14: 'Italien' } +const VIDEO_FILE_RESOLUTIONS = { + 0: 'original', + 1: '360p', + 2: '480p', + 3: '720p', + 4: '1080p' +} + // --------------------------------------------------------------------------- // Score a pod has when we create it as a friend @@ -198,11 +223,11 @@ const REQUESTS_VIDEO_EVENT_LIMIT_PER_POD = 50 // Number of requests to retry for replay requests module const RETRY_REQUESTS = 5 -const REQUEST_ENDPOINTS = { +const REQUEST_ENDPOINTS: { [ id: string ]: RequestEndpoint } = { VIDEOS: 'videos' } -const REQUEST_ENDPOINT_ACTIONS = {} +const REQUEST_ENDPOINT_ACTIONS: { [ id: string ]: any } = {} REQUEST_ENDPOINT_ACTIONS[REQUEST_ENDPOINTS.VIDEOS] = { ADD: 'add', UPDATE: 'update', @@ -213,13 +238,13 @@ REQUEST_ENDPOINT_ACTIONS[REQUEST_ENDPOINTS.VIDEOS] = { const REQUEST_VIDEO_QADU_ENDPOINT = 'videos/qadu' const REQUEST_VIDEO_EVENT_ENDPOINT = 'videos/events' -const REQUEST_VIDEO_QADU_TYPES = { +const REQUEST_VIDEO_QADU_TYPES: { [ id: string ]: RequestVideoQaduType } = { LIKES: 'likes', DISLIKES: 'dislikes', VIEWS: 'views' } -const REQUEST_VIDEO_EVENT_TYPES = { +const REQUEST_VIDEO_EVENT_TYPES: { [ id: string ]: RequestVideoEventType } = { LIKES: 'likes', DISLIKES: 'dislikes', VIEWS: 'views' @@ -230,7 +255,7 @@ const REMOTE_SCHEME = { WS: 'wss' } -const JOB_STATES = { +const JOB_STATES: { [ id: string ]: JobState } = { PENDING: 'pending', PROCESSING: 'processing', ERROR: 'error', @@ -269,15 +294,26 @@ let STATIC_MAX_AGE = '30d' const THUMBNAILS_SIZE = '200x110' const PREVIEWS_SIZE = '640x480' +// Subfolders of cache directory +const CACHE = { + DIRECTORIES: { + PREVIEWS: join(CONFIG.STORAGE.CACHE_DIR, 'previews') + } +} + // --------------------------------------------------------------------------- -const USER_ROLES = { +const USER_ROLES: { [ id: string ]: UserRole } = { ADMIN: 'admin', USER: 'user' } // --------------------------------------------------------------------------- +const OPENGRAPH_COMMENT = '' + +// --------------------------------------------------------------------------- + // Special constants for a test instance if (isTestInstance() === true) { CONSTRAINTS_FIELDS.VIDEOS.DURATION.max = 14 @@ -294,15 +330,17 @@ if (isTestInstance() === true) { export { API_VERSION, BCRYPT_SALT_SIZE, + CACHE, CONFIG, CONSTRAINTS_FIELDS, FRIEND_SCORE, - JOBS_FETCHING_INTERVAL, JOB_STATES, JOBS_CONCURRENCY, JOBS_FETCH_LIMIT_PER_CYCLE, + JOBS_FETCHING_INTERVAL, LAST_MIGRATION_VERSION, OAUTH_LIFETIME, + OPENGRAPH_COMMENT, PAGINATION_COUNT_DEFAULT, PODS_SCORE, PREVIEWS_SIZE, @@ -333,6 +371,7 @@ export { THUMBNAILS_SIZE, USER_ROLES, VIDEO_CATEGORIES, + VIDEO_FILE_RESOLUTIONS, VIDEO_LANGUAGES, VIDEO_LICENCES, VIDEO_RATE_TYPES