X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconstants.ts;h=d1915586ae78537c044ca195c9b811dfbfd425b6;hb=0883b3245bf0deb9106c4041e9afbd3521b79280;hp=3cf9ea36d74c707fb93d6e11b960ce56903063a7;hpb=a797728009eb5c26cf55624a4a01e8ecb73f1297;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 3cf9ea36d..d1915586a 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -6,13 +6,14 @@ import { FollowState } from '../../shared/models/actors' import { VideoPrivacy } from '../../shared/models/videos' // Do not use barrels, remain constants as independent as possible import { buildPath, isTestInstance, root, sanitizeHost, sanitizeUrl } from '../helpers/core-utils' +import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type' // Use a variable to reload the configuration if we need let config: IConfig = require('config') // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 195 +const LAST_MIGRATION_VERSION = 205 // --------------------------------------------------------------------------- @@ -65,6 +66,7 @@ const JOB_ATTEMPTS: { [ id in JobType ]: number } = { 'activitypub-http-broadcast': 5, 'activitypub-http-unicast': 5, 'activitypub-http-fetcher': 5, + 'activitypub-follow': 5, 'video-file': 1, 'email': 5 } @@ -72,9 +74,11 @@ const JOB_CONCURRENCY: { [ id in JobType ]: number } = { 'activitypub-http-broadcast': 1, 'activitypub-http-unicast': 5, 'activitypub-http-fetcher': 1, + 'activitypub-follow': 3, 'video-file': 1, 'email': 5 } +const BROADCAST_CONCURRENCY = 5 // How many requests in parallel we do in activitypub-http-broadcast job // 2 days const JOB_COMPLETED_LIFETIME = 60000 * 60 * 24 * 2 @@ -86,7 +90,8 @@ let SCHEDULER_INTERVAL = 60000 * 60 const CONFIG = { CUSTOM_FILE: getLocalConfigFilePath(), LISTEN: { - PORT: config.get('listen.port') + PORT: config.get('listen.port'), + HOSTNAME: config.get('listen.hostname') }, DATABASE: { DBNAME: 'peertube' + config.get('database.suffix'), @@ -106,6 +111,7 @@ const CONFIG = { 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') }, @@ -126,6 +132,7 @@ const CONFIG = { URL: '', HOST: '' }, + TRUST_PROXY: config.get('trust_proxy'), LOG: { LEVEL: config.get('log.level') }, @@ -161,6 +168,7 @@ const CONFIG = { 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') }, + get DEFAULT_NSFW_POLICY () { return config.get('instance.default_nsfw_policy') }, CUSTOMIZATIONS: { get JAVASCRIPT () { return config.get('instance.customizations.javascript') }, get CSS () { return config.get('instance.customizations.css') } @@ -225,7 +233,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: { @@ -233,6 +241,13 @@ const CONSTRAINTS_FIELDS = { } } +const RATES_LIMIT = { + LOGIN: { + WINDOW_MS: 5 * 60 * 1000, // 5 minutes + MAX: 15 // 15 attempts + } +} + let VIDEO_VIEW_LIFETIME = 60000 * 60 // 1 hour const VIDEO_TRANSCODING_FPS = { MIN: 10, @@ -291,7 +306,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 = { @@ -350,6 +380,12 @@ const BCRYPT_SALT_SIZE = 10 const USER_PASSWORD_RESET_LIFETIME = 60000 * 5 // 5 minutes +const NSFW_POLICY_TYPES: { [ id: string]: NSFWPolicyType } = { + DO_NOT_LIST: 'do_not_list', + BLUR: 'blur', + DISPLAY: 'display' +} + // --------------------------------------------------------------------------- // Express static paths (router) @@ -398,6 +434,13 @@ const OPENGRAPH_AND_OEMBED_COMMENT = '' // --------------------------------------------------------------------------- +const FEEDS = { + COUNT: 20, + CACHE_LIFETIME: 1000 * 60 * 15 // 15 minutes +} + +// --------------------------------------------------------------------------- + // Special constants for a test instance if (isTestInstance() === true) { ACTOR_FOLLOW_SCORE.BASE = 20 @@ -429,6 +472,7 @@ export { LAST_MIGRATION_VERSION, OAUTH_LIFETIME, OPENGRAPH_AND_OEMBED_COMMENT, + BROADCAST_CONCURRENCY, PAGINATION_COUNT_DEFAULT, ACTOR_FOLLOW_SCORE, PREVIEWS_SIZE, @@ -437,6 +481,8 @@ export { SERVER_ACTOR_NAME, PRIVATE_RSA_KEY_SIZE, SORTABLE_COLUMNS, + FEEDS, + NSFW_POLICY_TYPES, STATIC_MAX_AGE, STATIC_PATHS, ACTIVITY_PUB, @@ -452,6 +498,7 @@ export { USER_PASSWORD_RESET_LIFETIME, IMAGE_MIMETYPE_EXT, SCHEDULER_INTERVAL, + RATES_LIMIT, JOB_COMPLETED_LIFETIME, VIDEO_VIEW_LIFETIME }