X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconstants.ts;h=e730e3c84080ddff3ef105e93892d2d773ae83dd;hb=caf2aaf4f9d38ad441a5562c3b8720f8779d6f78;hp=c8623a5d43cf31cfb4884b0823afe258059c995e;hpb=68d19a0ace01cb7a3550da420d27663e2db1b98d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index c8623a5d4..e730e3c84 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -1,4 +1,5 @@ import { join } from 'path' +import { randomBytes } from 'crypto' import { JobType, VideoRateType, VideoResolution, VideoState } from '../../shared/models' import { ActivityPubActorType } from '../../shared/models/activitypub' import { FollowState } from '../../shared/models/actors' @@ -14,7 +15,7 @@ import { CONFIG, registerConfigChangedHandler } from './config' // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 490 +const LAST_MIGRATION_VERSION = 515 // --------------------------------------------------------------------------- @@ -61,6 +62,7 @@ const SORTABLE_COLUMNS = { VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'trending' ], + // Don't forget to update peertube-search-index with the same values VIDEOS_SEARCH: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'match' ], VIDEO_CHANNELS_SEARCH: [ 'match', 'displayName', 'createdAt' ], @@ -178,10 +180,6 @@ const SCHEDULER_INTERVALS_MS = { removeOldHistory: 60000 * 60 * 24 // 1 day } -const INSTANCES_INDEX = { - HOSTS_PATH: '/api/v1/instances/hosts' -} - // --------------------------------------------------------------------------- const CONSTRAINTS_FIELDS = { @@ -283,7 +281,7 @@ const CONSTRAINTS_FIELDS = { COUNT: { min: 0 } }, VIDEO_COMMENTS: { - TEXT: { min: 1, max: 3000 }, // Length + TEXT: { min: 1, max: 10000 }, // Length URL: { min: 3, max: 2000 } // Length }, VIDEO_SHARE: { @@ -376,7 +374,8 @@ const VIDEO_STATES = { const VIDEO_IMPORT_STATES = { [VideoImportState.FAILED]: 'Failed', [VideoImportState.PENDING]: 'Pending', - [VideoImportState.SUCCESS]: 'Success' + [VideoImportState.SUCCESS]: 'Success', + [VideoImportState.REJECTED]: 'Rejected' } const VIDEO_ABUSE_STATES = { @@ -635,7 +634,8 @@ const AUDIT_LOG_FILENAME = 'peertube-audit.log' const TRACKER_RATE_LIMITS = { INTERVAL: 60000 * 5, // 5 minutes ANNOUNCES_PER_IP_PER_INFOHASH: 15, // maximum announces per torrent in the interval - ANNOUNCES_PER_IP: 30 // maximum announces for all our torrents in the interval + ANNOUNCES_PER_IP: 30, // maximum announces for all our torrents in the interval + BLOCK_IP_LIFETIME: 60000 * 10 // 10 minutes } const P2P_MEDIA_LOADER_PEER_VERSION = 2 @@ -645,11 +645,22 @@ const P2P_MEDIA_LOADER_PEER_VERSION = 2 const PLUGIN_GLOBAL_CSS_FILE_NAME = 'plugins-global.css' const PLUGIN_GLOBAL_CSS_PATH = join(CONFIG.STORAGE.TMP_DIR, PLUGIN_GLOBAL_CSS_FILE_NAME) +let PLUGIN_EXTERNAL_AUTH_TOKEN_LIFETIME = 1000 * 60 * 5 // 5 minutes + const DEFAULT_THEME_NAME = 'default' const DEFAULT_USER_THEME_NAME = 'instance-default' // --------------------------------------------------------------------------- +const SEARCH_INDEX = { + ROUTES: { + VIDEOS: '/api/v1/search/videos', + VIDEO_CHANNELS: '/api/v1/search/video-channels' + } +} + +// --------------------------------------------------------------------------- + // Special constants for a test instance if (isTestInstance() === true) { PRIVATE_RSA_KEY_SIZE = 1024 @@ -686,6 +697,8 @@ if (isTestInstance() === true) { FILES_CACHE.VIDEO_CAPTIONS.MAX_AGE = 3000 MEMOIZE_TTL.OVERVIEWS_SAMPLE = 3000 OVERVIEWS.VIDEOS.SAMPLE_THRESHOLD = 2 + + PLUGIN_EXTERNAL_AUTH_TOKEN_LIFETIME = 5000 } updateWebserverUrls() @@ -698,11 +711,20 @@ registerConfigChangedHandler(() => { // --------------------------------------------------------------------------- +const FILES_CONTENT_HASH = { + MANIFEST: generateContentHash(), + FAVICON: generateContentHash(), + LOGO: generateContentHash() +} + +// --------------------------------------------------------------------------- + export { WEBSERVER, API_VERSION, PEERTUBE_VERSION, LAZY_STATIC_PATHS, + SEARCH_INDEX, HLS_REDUNDANCY_DIRECTORY, P2P_MEDIA_LOADER_PEER_VERSION, AVATARS_SIZE, @@ -726,7 +748,6 @@ export { PREVIEWS_SIZE, REMOTE_SCHEME, FOLLOW_STATES, - INSTANCES_INDEX, DEFAULT_USER_THEME_NAME, SERVER_ACTOR_NAME, PLUGIN_GLOBAL_CSS_FILE_NAME, @@ -778,9 +799,12 @@ export { VIDEO_VIEW_LIFETIME, CONTACT_FORM_LIFETIME, VIDEO_PLAYLIST_PRIVACIES, + PLUGIN_EXTERNAL_AUTH_TOKEN_LIFETIME, ASSETS_PATH, + FILES_CONTENT_HASH, loadLanguages, - buildLanguages + buildLanguages, + generateContentHash } // --------------------------------------------------------------------------- @@ -882,3 +906,7 @@ function buildLanguages () { return languages } + +function generateContentHash () { + return randomBytes(20).toString('hex') +}