X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Finitializers%2Fconstants.ts;h=284acf8f313889c64c845befd762cc7445c68f62;hb=761fc1ddfe32c81bcf7cf5b40f1b78cf9c614240;hp=a88f9642ca87ed87cdc3a596ac03e915811e4773;hpb=4ba3b8ea1be85d95a508ac479f26b96ceea15971;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index a88f9642c..284acf8f3 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -12,7 +12,7 @@ let config: IConfig = require('config') // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 185 +const LAST_MIGRATION_VERSION = 195 // --------------------------------------------------------------------------- @@ -65,13 +65,15 @@ const JOB_ATTEMPTS: { [ id in JobType ]: number } = { 'activitypub-http-broadcast': 5, 'activitypub-http-unicast': 5, 'activitypub-http-fetcher': 5, - 'video-file': 1 + 'video-file': 1, + 'email': 5 } const JOB_CONCURRENCY: { [ id in JobType ]: number } = { 'activitypub-http-broadcast': 1, 'activitypub-http-unicast': 5, 'activitypub-http-fetcher': 1, - 'video-file': 1 + 'video-file': 1, + 'email': 5 } // 2 days const JOB_COMPLETED_LIFETIME = 60000 * 60 * 24 * 2 @@ -95,9 +97,19 @@ const CONFIG = { }, REDIS: { HOSTNAME: config.get('redis.hostname'), - PORT: config.get('redis.port'), + PORT: config.get('redis.port'), AUTH: config.get('redis.auth') }, + SMTP: { + HOSTNAME: config.get('smtp.hostname'), + PORT: config.get('smtp.port'), + USERNAME: config.get('smtp.username'), + PASSWORD: config.get('smtp.password'), + TLS: config.get('smtp.tls'), + DISABLE_STARTTLS: config.get('smtp.disable_starttls'), + CA_FILE: config.get('smtp.ca_file'), + FROM_ADDRESS: config.get('smtp.from_address') + }, STORAGE: { AVATARS_DIR: buildPath(config.get('storage.avatars')), LOG_DIR: buildPath(config.get('storage.logs')), @@ -143,6 +155,17 @@ const CONFIG = { PREVIEWS: { get SIZE () { return config.get('cache.previews.size') } } + }, + INSTANCE: { + get NAME () { return config.get('instance.name') }, + get SHORT_DESCRIPTION () { return config.get('instance.short_description') }, + get DESCRIPTION () { return config.get('instance.description') }, + get TERMS () { return config.get('instance.terms') }, + get DEFAULT_CLIENT_ROUTE () { return config.get('instance.default_client_route') }, + CUSTOMIZATIONS: { + get JAVASCRIPT () { return config.get('instance.customizations.javascript') }, + get CSS () { return config.get('instance.customizations.css') } + } } } @@ -152,6 +175,7 @@ const CONSTRAINTS_FIELDS = { USERS: { USERNAME: { min: 3, max: 20 }, // Length PASSWORD: { min: 6, max: 255 }, // Length + DESCRIPTION: { min: 3, max: 250 }, // Length VIDEO_QUOTA: { min: -1 } }, VIDEO_ABUSES: { @@ -160,12 +184,20 @@ const CONSTRAINTS_FIELDS = { VIDEO_CHANNELS: { NAME: { min: 3, max: 120 }, // Length DESCRIPTION: { min: 3, max: 250 }, // Length + SUPPORT: { min: 3, max: 300 }, // Length URL: { min: 3, max: 2000 } // Length }, VIDEOS: { NAME: { min: 3, max: 120 }, // Length TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length - DESCRIPTION: { min: 3, max: 3000 }, // Length + DESCRIPTION: { min: 3, max: 10000 }, // Length + SUPPORT: { min: 3, max: 300 }, // Length + IMAGE: { + EXTNAME: [ '.jpg', '.jpeg' ], + FILE_SIZE: { + max: 2 * 1024 * 1024 // 2MB + } + }, EXTNAME: [ '.mp4', '.ogv', '.webm' ], INFO_HASH: { min: 40, max: 40 }, // Length, info hash is 20 bytes length but we represent it in hexadecimal so 20 * 2 DURATION: { min: 1 }, // Number @@ -194,7 +226,7 @@ const CONSTRAINTS_FIELDS = { COUNT: { min: 0 } }, VIDEO_COMMENTS: { - TEXT: { min: 2, max: 3000 }, // Length + TEXT: { min: 1, max: 3000 }, // Length URL: { min: 3, max: 2000 } // Length }, VIDEO_SHARE: { @@ -202,6 +234,12 @@ const CONSTRAINTS_FIELDS = { } } +let VIDEO_VIEW_LIFETIME = 60000 * 60 // 1 hour +const VIDEO_TRANSCODING_FPS = { + MIN: 10, + MAX: 30 +} + const VIDEO_RATE_TYPES: { [ id: string ]: VideoRateType } = { LIKE: 'like', DISLIKE: 'dislike' @@ -254,7 +292,22 @@ const VIDEO_LANGUAGES = { 11: 'German', 12: 'Korean', 13: 'French', - 14: 'Italian' + 14: 'Italian', + 1000: 'Sign Language', + 1001: 'American Sign Language', + 1002: 'Arab Sign Language', + 1003: 'British Sign Language', + 1004: 'Brazilian Sign Language', + 1005: 'Chinese Sign Language', + 1006: 'Czech Sign Language', + 1007: 'Danish Sign Language', + 1008: 'French Sign Language', + 1009: 'German Sign Language', + 1010: 'Indo-Pakistani Sign Language', + 1011: 'Japanese Sign Language', + 1012: 'South African Sign Language', + 1013: 'Swedish Sign Language', + 1014: 'Russian Sign Language' } const VIDEO_PRIVACIES = { @@ -269,7 +322,7 @@ const VIDEO_MIMETYPE_EXT = { 'video/mp4': '.mp4' } -const AVATAR_MIMETYPE_EXT = { +const IMAGE_MIMETYPE_EXT = { 'image/png': '.png', 'image/jpg': '.jpg', 'image/jpeg': '.jpg' @@ -311,6 +364,8 @@ const PRIVATE_RSA_KEY_SIZE = 2048 // Password encryption const BCRYPT_SALT_SIZE = 10 +const USER_PASSWORD_RESET_LIFETIME = 60000 * 5 // 5 minutes + // --------------------------------------------------------------------------- // Express static paths (router) @@ -369,6 +424,7 @@ if (isTestInstance() === true) { ACTIVITY_PUB.ACTOR_REFRESH_INTERVAL = 10 * 1000 // 10 seconds CONSTRAINTS_FIELDS.ACTORS.AVATAR.FILE_SIZE.max = 100 * 1024 // 100KB SCHEDULER_INTERVAL = 10000 + VIDEO_VIEW_LIFETIME = 1000 // 1 second } updateWebserverConfig() @@ -408,9 +464,12 @@ export { VIDEO_LICENCES, VIDEO_RATE_TYPES, VIDEO_MIMETYPE_EXT, - AVATAR_MIMETYPE_EXT, + VIDEO_TRANSCODING_FPS, + USER_PASSWORD_RESET_LIFETIME, + IMAGE_MIMETYPE_EXT, SCHEDULER_INTERVAL, - JOB_COMPLETED_LIFETIME + JOB_COMPLETED_LIFETIME, + VIDEO_VIEW_LIFETIME } // ---------------------------------------------------------------------------