X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconstants.ts;h=676d9804be073234c60d179c26066368ea9b900b;hb=2158ac90341dc3fcae958540de65032da25c8d6e;hp=fb8ae7cd66cdfe1aa18c083bf7fe12a56bb71312;hpb=a15871560f80e07386c1dabb8370cd2664ecfd1f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index fb8ae7cd6..676d9804b 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -14,7 +14,7 @@ import { CONFIG, registerConfigChangedHandler } from './config' // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 480 +const LAST_MIGRATION_VERSION = 505 // --------------------------------------------------------------------------- @@ -59,9 +59,9 @@ const SORTABLE_COLUMNS = { FOLLOWERS: [ 'createdAt', 'state', 'score' ], FOLLOWING: [ 'createdAt', 'redundancyAllowed', 'state' ], - VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'views', 'likes', 'trending' ], + VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'trending' ], - VIDEOS_SEARCH: [ 'name', 'duration', 'createdAt', 'publishedAt', 'views', 'likes', 'match' ], + VIDEOS_SEARCH: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'match' ], VIDEO_CHANNELS_SEARCH: [ 'match', 'displayName', 'createdAt' ], ACCOUNTS_BLOCKLIST: [ 'createdAt' ], @@ -90,9 +90,6 @@ const ROUTE_CACHE_LIFETIME = { SECURITYTXT: '2 hours', NODEINFO: '10 minutes', DNT_POLICY: '1 week', - OVERVIEWS: { - VIDEOS: '1 hour' - }, ACTIVITY_PUB: { VIDEOS: '1 second' // 1 second, cache concurrent requests after a broadcast for example }, @@ -148,11 +145,11 @@ const JOB_CONCURRENCY: { [id in JobType]: number } = { const JOB_TTL: { [id in JobType]: number } = { 'activitypub-http-broadcast': 60000 * 10, // 10 minutes 'activitypub-http-unicast': 60000 * 10, // 10 minutes - 'activitypub-http-fetcher': 60000 * 10, // 10 minutes + 'activitypub-http-fetcher': 1000 * 3600 * 10, // 10 hours 'activitypub-follow': 60000 * 10, // 10 minutes 'video-file-import': 1000 * 3600, // 1 hour 'video-transcoding': 1000 * 3600 * 48, // 2 days, transcoding could be long - 'video-import': 1000 * 3600 * 2, // hours + 'video-import': 1000 * 3600 * 2, // 2 hours 'email': 60000 * 10, // 10 minutes 'videos-views': undefined, // Unlimited 'activitypub-refresher': 60000 * 10, // 10 minutes @@ -181,10 +178,6 @@ const SCHEDULER_INTERVALS_MS = { removeOldHistory: 60000 * 60 * 24 // 1 day } -const INSTANCES_INDEX = { - HOSTS_PATH: '/api/v1/instances/hosts' -} - // --------------------------------------------------------------------------- const CONSTRAINTS_FIELDS = { @@ -286,7 +279,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: { @@ -379,7 +372,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 = { @@ -406,6 +400,9 @@ const MIMETYPES = { 'audio/mp3': '.mp3', 'application/ogg': '.ogg', 'audio/ogg': '.ogg', + 'audio/x-ms-wma': '.wma', + 'audio/wav': '.wav', + 'audio/x-flac': '.flac', 'audio/flac': '.flac' }, EXT_MIMETYPE: null as { [ id: string ]: string } @@ -419,7 +416,8 @@ const MIMETYPES = { 'image/png': '.png', 'image/jpg': '.jpg', 'image/jpeg': '.jpg' - } + }, + EXT_MIMETYPE: null as { [ id: string ]: string } }, VIDEO_CAPTIONS: { MIMETYPE_EXT: { @@ -435,13 +433,14 @@ const MIMETYPES = { } } MIMETYPES.AUDIO.EXT_MIMETYPE = invert(MIMETYPES.AUDIO.MIMETYPE_EXT) +MIMETYPES.IMAGE.EXT_MIMETYPE = invert(MIMETYPES.IMAGE.MIMETYPE_EXT) // --------------------------------------------------------------------------- const OVERVIEWS = { VIDEOS: { SAMPLE_THRESHOLD: 6, - SAMPLES_COUNT: 2 + SAMPLES_COUNT: 20 } } @@ -462,7 +461,7 @@ const ACTIVITY_PUB = { ACCEPT_HEADER: 'application/activity+json, application/ld+json', PUBLIC: 'https://www.w3.org/ns/activitystreams#Public', COLLECTION_ITEMS_PER_PAGE: 10, - FETCH_PAGE_LIMIT: 100, + FETCH_PAGE_LIMIT: 2000, URL_MIME_TYPES: { VIDEO: [] as string[], TORRENT: [ 'application/x-bittorrent' ], @@ -497,6 +496,7 @@ let PRIVATE_RSA_KEY_SIZE = 2048 const BCRYPT_SALT_SIZE = 10 const USER_PASSWORD_RESET_LIFETIME = 60000 * 60 // 60 minutes +const USER_PASSWORD_CREATE_LIFETIME = 60000 * 60 * 24 * 7 // 7 days const USER_EMAIL_VERIFY_LIFETIME = 60000 * 60 // 60 minutes @@ -642,6 +642,8 @@ 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' @@ -681,8 +683,10 @@ if (isTestInstance() === true) { JOB_ATTEMPTS['email'] = 1 FILES_CACHE.VIDEO_CAPTIONS.MAX_AGE = 3000 - MEMOIZE_TTL.OVERVIEWS_SAMPLE = 1 - ROUTE_CACHE_LIFETIME.OVERVIEWS.VIDEOS = '0ms' + MEMOIZE_TTL.OVERVIEWS_SAMPLE = 3000 + OVERVIEWS.VIDEOS.SAMPLE_THRESHOLD = 2 + + PLUGIN_EXTERNAL_AUTH_TOKEN_LIFETIME = 5000 } updateWebserverUrls() @@ -723,7 +727,6 @@ export { PREVIEWS_SIZE, REMOTE_SCHEME, FOLLOW_STATES, - INSTANCES_INDEX, DEFAULT_USER_THEME_NAME, SERVER_ACTOR_NAME, PLUGIN_GLOBAL_CSS_FILE_NAME, @@ -759,6 +762,7 @@ export { LRU_CACHE, JOB_REQUEST_TIMEOUT, USER_PASSWORD_RESET_LIFETIME, + USER_PASSWORD_CREATE_LIFETIME, MEMOIZE_TTL, USER_EMAIL_VERIFY_LIFETIME, OVERVIEWS, @@ -774,6 +778,7 @@ export { VIDEO_VIEW_LIFETIME, CONTACT_FORM_LIFETIME, VIDEO_PLAYLIST_PRIVACIES, + PLUGIN_EXTERNAL_AUTH_TOKEN_LIFETIME, ASSETS_PATH, loadLanguages, buildLanguages @@ -795,9 +800,10 @@ function buildVideoMimetypeExt () { 'video/x-msvideo': '.avi', 'video/x-flv': '.flv', 'video/x-matroska': '.mkv', - 'application/octet-stream': '.mkv', 'video/avi': '.avi', 'video/x-m4v': '.m4v', + // Could be anything + 'application/octet-stream': null, 'video/m4v': '.m4v' }) } @@ -866,7 +872,7 @@ function buildLanguages () { // Only add ISO639-1 languages and some sign languages (ISO639-3) iso639 .filter(l => { - return (l.iso6391 !== null && l.type === 'living') || + return (l.iso6391 !== undefined && l.type === 'living') || additionalLanguages[l.iso6393] === true }) .forEach(l => { languages[l.iso6391 || l.iso6393] = l.name })